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

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)
DFIRST_VALUE(revenue) OVER (PARTITION BY product_id ORDER BY week)
Правильный ответ. Второй аргумент LAG(x, n) задаёт смещение на n строк назад внутри секции окна.

Разбор

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

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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