← Назад к вопросам

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) по временам — могут ли отличаться цены
SQL: Определить самый популярный день для покупок | PrepBro