SQL Senior Моделирование: Кимбалл, звезда, SCD обновлено
Собрать SCD 2 из ежедневных снимков
Условие
В snap_customer ежедневные снимки тарифа клиентов: строка на каждый день, когда клиент был в выгрузке. Постройте периоды SCD 2: для каждого клиента непрерывные отрезки с одинаковым тарифом. Новый период начинается при смене тарифа. Пропуски дней внутри одного тарифа не разрывают период.
Колонки: customer_id, plan, valid_from (первый день периода), valid_to (первый день следующего периода этого клиента, у последнего периода 9999-12-31). Сортировка по customer_id, valid_from. Порядок строк важен.
Как подойти
Подсказки: 2
LAG(plan)найдёт смену тарифа.- Нарастающая сумма флагов смены даёт номер периода.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
SCD 1: upsert справочника товаров
Следующий вопрос
SCD 2: применить снимок источника к измерению
Термины по теме
Ещё по теме «Моделирование: Кимбалл, звезда, SCD»
- Аддитивность мер
- Типы таблиц фактов
- Типы SCD
- Data Vault: хабы, линки, сателлиты
- Факт или измерение
- Гранулярность факта
- Порядок загрузки SCD 2
- Point-in-time JOIN