Разница между OVER() и PARTITION BY заключается в их назначении в контексте оконных функций:
- OVER() определяет, как именно нужно разделить строки запроса для обработки оконной функцией. 1 Если конструкцию OVER() оставить без параметров, то окном будет выступать вся таблица. 4
- PARTITION BY разделяет строки по группам, или разделам, объединяя одинаковые значения выражений PARTITION BY. 1 Оконная функция вычисляется по строкам, попадающим в один раздел с текущей строкой. 1 Если PARTITION BY не указан, то все строки исходной таблицы попадают в один раздел. 5
Таким образом, OVER() определяет общее разделение строк, а PARTITION BY — разделение по группам для дальнейшей обработки оконной функцией. 14