SQL Middle Моделирование: Кимбалл, звезда, SCD спрашивают часто обновлено

SCD 2: применить снимок источника к измерению

Условие

В dim_customer измерение клиентов в формате SCD 2 (valid_to = 9999-12-31 у текущей версии). В stg_customer снимок источника на 2025-10-01. Примените снимок:

  • у клиентов, у которых изменился city или segment, закройте текущую версию (valid_to = 2025-10-01, is_current = false) и вставьте новую с valid_from = 2025-10-01;
  • новых клиентов вставьте с valid_from = 2025-10-01;
  • неизменившихся не трогайте.

После изменений выведите всё измерение: customer_id, city, segment, valid_from, valid_to, is_current, отсортировав по customer_id, valid_from. Порядок строк важен.

Как подойти

Подсказки: 2
  1. Сначала UPDATE ... FROM stg_customer для изменившихся текущих версий.
  2. Затем INSERT ... SELECT тех, у кого нет текущей версии.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.