← Назад к вопросам
SQL: Определить самый популярный день для покупок
1.0 Junior🔥 271 комментариев
Условие
У вас есть таблица orders:
- order_id (integer)
- customer_id (integer)
- order_date (timestamp)
- amount (decimal)
Определите самый популярный день недели и час для покупок.
Ожидаемый результат:
Два запроса: по дням недели и по часам. Колонки: day_of_week/hour, orders_count, total_revenue
Источник: задача для e-commerce аналитики
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
SQL: Определить самый популярный день для покупок
Анализ по дням недели
SELECT
DAYNAME(order_date) as day_of_week,
DAYOFWEEK(order_date) as day_num,
COUNT(*) as orders_count,
ROUND(SUM(amount), 2) as total_revenue,
ROUND(AVG(amount), 2) as avg_order_value,
ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER (), 2) as pct_of_total
FROM orders
GROUP BY DAYOFWEEK(order_date), DAYNAME(order_date)
ORDER BY day_num;
Анализ по часам суток
SELECT
HOUR(order_date) as hour_of_day,
COUNT(*) as orders_count,
ROUND(SUM(amount), 2) as total_revenue,
ROUND(AVG(amount), 2) as avg_order_value,
ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER (), 2) as pct_of_total
FROM orders
GROUP BY HOUR(order_date)
ORDER BY hour_of_day;
Комбинированный анализ (день × час)
SELECT
DAYNAME(order_date) as day_of_week,
HOUR(order_date) as hour_of_day,
COUNT(*) as orders_count,
ROUND(SUM(amount), 2) as total_revenue
FROM orders
GROUP BY DAYOFWEEK(order_date), DAYNAME(order_date), HOUR(order_date)
ORDER BY DAYOFWEEK(order_date), HOUR(order_date);
Интерпретация для Product Analytics
Пиковые периоды:
- Часовой анализ показывает пики нагрузки (обычно вечер 18-21ч)
- Дневной анализ выявляет популярные дни (часто выходные)
- Комбинированный выявляет "супер-пики" (напр. пятница вечер)
Бизнес-применение:
- Таргетирование рекламы на пиковые часы
- Планирование персонала и инфраструктуры
- Стратегия скидок на низкопиковые периоды для выравнивания спроса
- Анализ AOV (average order value) по временам — могут ли отличаться цены
Похожие вопросы
- SQL: Расчет среднего чека по дням недели
- SQL: Сравнение конверсии между устройствами
- SQL: Найти пользователей, купивших товар с id=5 после 10 октября
- SQL: Расчет среднего размера корзины
- SQL: Определить пиковые часы нагрузки
- Теория вероятностей: Два кубика
- Вероятность: Задача про email рассылку
- SQL: Найти клиентов с более чем 3 покупками за месяц
- Продуктовый кейс: Анализ аномалии в метриках
- SQL: Ранжирование заказов клиента
- SQL: Найти сессии длиннее среднего для пользователя
- SQL: Найти пользователей с непрерывной активностью N дней
- Продуктовый кейс: Метрики для любимого приложения
- SQL: Найти топ-3 продукта по выручке в каждой категории
- SQL: Посчитать воронку конверсии
- SQL: Найти товары, которые покупали вместе
- SQL: Скользящее среднее за 7 дней
- SQL: Посчитать DAU и WAU
- SQL: Анализ повторных покупок
- SQL: Year-over-Year сравнение выручки