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
- Сначала
UPDATE ... FROM stg_customerдля изменившихся текущих версий. - Затем
INSERT ... SELECTтех, у кого нет текущей версии.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Собрать SCD 2 из ежедневных снимков
Следующий вопрос
Отчёт по звезде: выручка по категориям и месяцам
Термины по теме
Ещё по теме «Моделирование: Кимбалл, звезда, SCD»
- Аддитивность мер
- Типы таблиц фактов
- Типы SCD
- Data Vault: хабы, линки, сателлиты
- Факт или измерение
- Гранулярность факта
- Порядок загрузки SCD 2
- Point-in-time JOIN