Для каждой покупки пользователя нужно добавить дату следующей покупки этого же пользователя (чтобы потом посчитать интервал между покупками). Что использовать?

ALEAD(order_at) OVER (PARTITION BY user_id ORDER BY order_at)
BLAG(order_at) OVER (PARTITION BY user_id ORDER BY order_at)
CLEAD(order_at) OVER (ORDER BY order_at)
DRANK() OVER (PARTITION BY user_id ORDER BY order_at)
Правильный ответ. LEAD возвращает значение из следующей строки относительно текущей по порядку ORDER BY.

Разбор

Окно OVER (PARTITION BY user_id ORDER BY order_at) задает последовательность покупок пользователя. LEAD(order_at) берет order_at из следующей покупки этого же пользователя, что удобно для расчетов интервалов и анализа повторных покупок. LAG смотрит назад (предыдущая покупка), а без PARTITION BY user_id вы получите «следующую покупку» другого пользователя.

Проверь себя · 1/3разбор после ответа
Для каждой покупки пользователя нужно добавить дату следующей покупки этого же пользователя (чтобы потом посчитать интервал между покупками). Что использовать?
Тренировать SQL в Telegram

Ещё вопросы по теме «Оконные функции»