This media is not supported in your browser
VIEW IN TELEGRAM
🗓️ SQL-трюк: как быстро найти "дыры" в данных по датам
В аналитике часто нужно понять, за какие дни нет записей — например, продаж или логов.
Вместо сложных процедур можно сгенерировать календарь через
https://www.youtube.com/shorts/CAkHyUx6iiU
#SQL #Postgres #DataAnalytics #generate_series
В аналитике часто нужно понять, за какие дни нет записей — например, продаж или логов.
Вместо сложных процедур можно сгенерировать календарь через
generate_series()
(Postgres) и сделать LEFT JOIN
к данным. Так вы мгновенно выявите пропуски и сможете строить непрерывные временные ряды.
-- Дни без заказов за последние 30 дней
WITH calendar AS (
SELECT generate_series(
current_date - interval '30 days',
current_date,
interval '1 day'
)::date AS day
),
orders_per_day AS (
SELECT
order_ts::date AS day,
COUNT(*) AS orders_count
FROM sales
WHERE order_ts >= current_date - interval '30 days'
GROUP BY order_ts::date
)
SELECT
c.day,
COALESCE(o.orders_count, 0) AS orders_count
FROM calendar c
LEFT JOIN orders_per_day o USING(day)
WHERE o.orders_count IS NULL
ORDER BY c.day;
https://www.youtube.com/shorts/CAkHyUx6iiU
#SQL #Postgres #DataAnalytics #generate_series
👍13❤8🔥4