Разница между функциями count и window functions в PostgreSQL заключается в их функциях и области применения.
Count() — это агрегатная функция, которая подсчитывает общее количество строк. 13 Например, count(*) подсчитает общее количество строк, а count(f1) — только количество строк, в которых f1 не NULL (так как count игнорирует NULL). 1
Window functions позволяют выполнять расчёты на наборе строк, связанных с текущей строкой. 24 В отличие от агрегатных функций, при использовании оконных функций не происходит группировка выбранных строк в одну — каждая строка остаётся отдельной в результате запроса. 1 Однако оконная функция имеет доступ ко всем строкам, вошедшим в группу текущей строки согласно указанию группировки (списку PARTITION BY) в вызове оконной функции. 1
Таким образом, count() фокусируется на подсчёте общего количества строк, в то время как window functions позволяют проводить расчёты на основе нескольких связанных строк.