Разница между синтаксисами ROWS и RANGE при указании оконной функции заключается в том, как они определяют границы окна. 1
ROWS основан на физических строках. 1 Определение окна основывается на физическом положении строк относительно текущей строки. 1 Например, 1 PRECEDING означает одну строку до текущей. 1 С помощью ROWS можно чётко ограничить количество строк, которые включаются в окно, что делает его предсказуемым и конкретным. 1
RANGE, в отличие от ROWS, основан на значениях. 1 Границы окна определяются на основе значений столбцов, упорядоченных в соответствии с ORDER BY в оконной функции. 1 Границы, определённые с помощью RANGE, могут варьироваться в зависимости от данных, что делает окно гибким, но потенциально менее предсказуемым. 1
Ещё одно отличие заключается в том, как обрабатываются повторяющиеся значения: RANGE рассматривает их как единое целое, а ROWS — как отдельные значения. 3