ROWS и RANGE отличаются в том, как они определяют границы окна в оконных функциях SQL. 1
ROWS основан на физических строках и задаёт точные границы окна. 1 Он ограничивает количество строк, которые включаются в окно, делая его предсказуемым и конкретным. 1 Например, ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING указывает, что окно включает строку перед текущей, текущую и строку после. 2
RANGE, в отличие от ROWS, основан на значениях и определяет динамичные границы окна. 1 Он группирует вместе строки с одинаковыми или близкими значениями в указанном столбце сортировки. 2 Границы, определённые с помощью RANGE, могут варьироваться в зависимости от данных, что делает окно гибким, но потенциально менее предсказуемым. 1
Ещё одно отличие заключается в том, как ROWS и RANGE обрабатывают дублирующиеся значения: RANGE рассматривает их как единое целое, а ROWS — как отдельные значения. 4