SQLLab
Практика· 18 мин· 35 XP

Первый запрос к fact_sales

Задание

Финансовый директор каждый квартал запрашивает сводку по выручке и прибыли компании — без ручного сведения данных из десятков таблиц операционной базы. Для такой отчётности в компании построено хранилище данных (DWH) по схеме «звезда»: таблица фактов fact_sales хранит одну строку на каждую позицию продажи, а измерение dim_date — уже готовые атрибуты дат (год, квартал), которые не нужно вычислять на лету. В этом главное отличие от OLTP-схемы: вместо цепочки JOIN по нормализованным таблицам аналитик получает нужный срез одним прямым JOIN.

Техническое задание

Соедините fact_sales и dim_date по date_id. Учитывайте только продажи со статусом order_status = 'completed' — отменённые и незавершённые заказы не должны попадать в финансовую отчётность.

Сгруппируйте по году и кварталу и выведите:

  • year
  • quarter
  • total_revenue — суммарная выручка (SUM(revenue))
  • total_profit — суммарная прибыль (SUM(profit))
  • orders_count — количество уникальных заказов (COUNT(DISTINCT order_id))

Отсортируйте по year, quarter — чтобы отчёт читался в хронологическом порядке, от старых периодов к новым.

Результат выполнения SQL-запроса
История твоих попыток решения
Показать эталонное решение задачи
ER-диаграмма таблиц базы данных
Ожидаемые колонки в правильном ответе
Появится после 3 неудачных попыток
Анализ плана выполнения запроса PostgreSQL

Результаты появятся здесь после выполнения запроса.