Во-первых, использование RANK()
НАСТОЯТЕЛЬНО не рекомендуется. См. Документацию .
. Лучший способ написать это:
QUALIFY RANK() OVER (ORDER BY column1 ASC, column2 ASC, column3 , column4) = 1
Это эквивалентно возвращению ВСЕХ строк со следующими условиями:
column1
имеет минимальное значение. column2
имеет минимальное значение для всего в (1). column3
имеет минимальное значение для всего в ( 2). column4
имеет минимальное значение для всего в (3).
То есть данные упорядочиваются по четырем клавишам, а первая строка - и все строки, соответствующие ему по четырем клавишам - возвращаются.