Разница между ROWS и RANGE в аналитических функциях Oracle заключается в том, как они определяют границы окна: sql-academy.org
- ROWS основан на физических строках. sql-academy.org Определение окна основывается на физическом положении строк относительно текущей строки. sql-academy.org Например, 1 PRECEDING означает одну строку до текущей. sql-academy.org С помощью ROWS можно указать фиксированное количество строк, предшествующих или следующих за текущей. thisisdata.ru
- RANGE основан на значениях. sql-academy.org Границы окна определяются на основе значений столбцов, упорядоченных в соответствии с ORDER BY в оконной функции. sql-academy.org Под одной строкой для RANGE могут пониматься несколько физических строк, одинаковых по рангу. thisisdata.ru
Таким образом, ROWS даёт точные границы, а RANGE делает их динамичными: границы, определённые с помощью RANGE, могут варьироваться в зависимости от данных, что делает окно гибким, но потенциально менее предсказуемым. sql-academy.org