SQLПродуктовая аналитикаHardPremium

Дни без единого заказа

// Условие

В таблице orders есть дни периода 2023-01-01 – 2024-12-31, за которые не сохранилось ни одного заказа. Обычный GROUP BY по order_date их не покажет: пропущенных дат в таблице попросту нет, а по количеству строк недостачу на глаз не различить. Построй календарь всех дат периода и найди дни, для которых в orders нет ни одной записи, а затем посмотри, как эти пропуски распределены по дням недели. Выведи: weekday (число 0-6, где 0 = воскресенье, как в EXTRACT(DOW ...)), weekday_name (название дня недели), missing_days — сколько пропущенных дней приходится на этот день недели. Отсортируй по missing_days по убыванию, при равенстве — по weekday по возрастанию.

// Таблицы

sandbox.orders
order_idINT
user_idINT
order_dateTIMESTAMP
amountNUMERIC(10,2)
statusVARCHAR(20)
delivery_daysINT
promo_codeVARCHAR(20)

// Что тренирует

generate_seriesLEFT JOINmissing_datacalendarDOW
▶ Решить в SQL-песочнице

// Решение

🔒

Решение, подсказки и автопроверка этой задачи — по подписке Premium. Вместе с ней открываются все премиум-задачи трёх тренажёров: SQL, pandas и A/B.

★ Открыть Premium

// Похожие задачи

// Разобраться в теме

→ SQL-задачи с собеседований аналитика