Основное отличие режимов ROWS, RANGE и GROUPS в оконных функциях PostgreSQL заключается в том, как они работают с данными: data-xtractor.com
- ROWS действует на отдельных строках. data-xtractor.com Смещение, которое задаётся в этом режиме, определяет сдвиг, с которым начало рамки позиционируется перед текущей строкой, а конец — после неё. postgrespro.ru
- RANGE работает с группами строк, для которых предложение ORDER BY должно содержать ровно один столбец. postgrespro.ru Смещение в этом режиме задаёт максимальную разницу между значением столбца в текущей строке и значением того же столбца в предшествующих или последующих строках рамки. postgrespro.ru
- GROUPS также работает с группами строк, но смещение определяет сдвиг (по количеству групп родственных строк), с которым начало рамки позиционируется перед группой строк, родственных текущей, а конец — после этой группы. postgrespro.ru Группу родственных строк образуют строки, которые считаются равными согласно ORDER BY. postgrespro.ru Для использования режима GROUPS определение окна должно содержать предложение ORDER BY. postgrespro.ru
Режим GROUPS поддерживается только в версиях PostgreSQL начиная с 11. data-xtractor.com