В недельной витрине метрик вы хотите вывести значение revenue из строки «две недели назад» для каждого продукта. Какой вызов корректен?

ALAG(revenue) OVER (PARTITION BY product_id ORDER BY week)
BLEAD(revenue, 2) OVER (PARTITION BY product_id ORDER BY week)
CLAG(revenue, 2) OVER (PARTITION BY product_id ORDER BY week)
DDENSE_RANK(revenue, 2) OVER (PARTITION BY product_id ORDER BY week)
Правильный ответ. Второй аргумент LAG(x, n) задает смещение на n строк назад.

Разбор

LAG(revenue, 2) OVER (PARTITION BY product_id ORDER BY week) вернет revenue из строки, которая находится на две позиции раньше в порядке week внутри product_id. Это удобно для сравнений с лагом 2 (например, текущая неделя vs две недели назад), когда «вчера» недостаточно информативно.

Проверь себя · 1/3разбор после ответа
Что именно посчитает выражение SUM(amount) OVER (PARTITION BY campaign_id ORDER BY event_time) в таблице платежей по кампаниям?
Тренировать SQL в Telegram

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