SQL в PostgreSQL: оконные функции
 
Оконная функция выполняет вычисление по набору строк таблицы, которые каким-то образом связаны с текущей строкой. Это сравнимо с типом расчета, который можно выполнить с помощью агрегатной функции. Однако оконные функции не заставляют строки группироваться в одну выходную строку, как это было бы при не оконных агрегатных вызовах. Вместо этого строки сохраняют свои отдельные идентификаторы. За кулисами оконная функция может получить доступ не только к текущей строке результата запроса.  Вот пример, который показывает, как сравнить зарплату каждого сотрудника со средней зарплатой в его или ее отделе:     SELECT depname, empno, salary,         avg(salary) OVER (PARTITION BY depname) FROM empsalary;         depname  | empno | salary |          avg           -----------+-------+--------+-----------------------  develop   |    11 |   5200 | 5020.0000000000000000  develop   |     7 |   4200 | 5020.0000000000000000  develop   |     9 |   4500 | 5020.0000000000000000  develop   |     8 |   6000...