← Назад к вопросам
SQL: Определить самый популярный день для покупок
1.0 Junior🔥 271 комментариев
#SQL и базы данных#Аналитика мобильных приложений
Условие
У вас есть таблица 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) по временам — могут ли отличаться цены