Иногда нужно посчитать статистику не по дням, а по неделям.
Для этого можно использовать функции работы с датами.
-- PostgreSQL
SELECT
DATE_TRUNC('week', order_date) AS week_start,
COUNT(*) AS orders_count
FROM orders
GROUP BY DATE_TRUNC('week', order_date)
ORDER BY week_start;
-- MySQL
SELECT
YEARWEEK(order_date, 1) AS year_week,
COUNT(*) AS orders_count
FROM orders
GROUP BY YEARWEEK(order_date, 1)
ORDER BY year_week;
🔎 Так можно быстро увидеть динамику заказов по неделям.
Аналогично работает и для
month, quarter, year.