Разница между оконными и агрегатными функциями заключается в том, как они обрабатывают данные: 3
- Агрегатные функции сворачивают несколько строк в одну строку результата. 3 Они выполняют операцию над набором строк, сгруппированных по определённым критериям, и возвращают единственное значение для каждой группы. 3 Например, функции SUM(), AVG(), MAX() и MIN() являются агрегатными функциями. 3
- Оконные функции, напротив, предоставляют результаты для каждой отдельной строки в наборе данных. 3 Они выполняют агрегатную операцию над набором строк, но результат отображается как новое значение столбца в каждой строке. 3 Оконные функции позволяют анализировать данные на уровне строк, не сворачивая их. 3
Ещё одно отличие заключается в том, что при использовании агрегирующих функций предложение GROUP BY сокращает количество строк в запросе с помощью их группировки, а при использовании оконных функций количество строк в запросе не уменьшается по сравнению с исходной таблицей. 1