Дни без единого заказа
// Условие
В таблице 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 по возрастанию.
// Таблицы
order_id | INT |
user_id | INT |
order_date | TIMESTAMP |
amount | NUMERIC(10,2) |
status | VARCHAR(20) |
delivery_days | INT |
promo_code | VARCHAR(20) |
// Что тренирует
// Решение
Решение, подсказки и автопроверка этой задачи — по подписке Premium. Вместе с ней открываются все премиум-задачи трёх тренажёров: SQL, pandas и A/B.
★ Открыть Premium