Что именно посчитает выражение SUM(amount) OVER (PARTITION BY campaign_id ORDER BY event_time) в таблице платежей по кампаниям?

AОдин общий накопительный итог SUM(amount) по всем кампаниям сразу, упорядоченный по event_time без разбиения по campaign_id
BПо одной строке на каждое значение campaign_id с итоговым SUM(amount) без учёта порядка event_time и без накопления
CСначала отсортирует все строки по event_time, а затем разделит на группы по campaign_id и пересчитает SUM(amount) заново
DНакопительный итог SUM(amount) отдельно внутри каждой группы campaign_id, в порядке event_time для каждого окна
Правильный ответ. PARTITION BY задаёт независимые окна по группам, а ORDER BY — порядок накопления внутри каждой группы.

Разбор

Окно разбивается по campaign_id, поэтому суммы считаются независимо для каждой кампании. Внутри каждой кампании строки упорядочиваются по event_time, и SUM(amount) даёт кумулятивный итог на каждой строке. Это полезно для построения накопительных графиков расходов или выручки по кампаниям, не теряя детализацию по событиям.

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

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

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

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

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