Если нужно посчитать время между событиями (например, между заказами, логинами или платежами). Есть простой и эффективный способ — функция
LAG().Сначала берём дату текущего и предыдущего события для каждого пользователя:
LAG(order_date) OVER (PARTITION BY user_id ORDER BY order_date)
Считаем разницу между ними:
order_date - LAG(order_date) OVER (PARTITION BY user_id ORDER BY order_date)
Чтобы получить средний промежуток:
SELECT user_id,
AVG(order_date - LAG(order_date) OVER (PARTITION BY user_id ORDER BY order_date)) AS avg_gap
FROM orders;
🔥 Так вы узнаете, среднюю частоту заказов по каждому пользователю, без подзапросов, без циклов.
➡️ SQL Ready | #совет
