Вот мой пример
sqlfiddle
Мои данные (таблица_1)
col_1
foo
foo
bar
bar
Мои запросы:
select col_1, rank() over(order by col_1) as rank from table_1;
возвращает:
col_1 rank
foo 1
foo 1
bar 3
bar 3
и этот запрос возвращает
select col_1, rank() over(order by col_1) as rank from table_1 group by col_1
col_1 rank
foo 1
bar 2
Так что, если я правильно понимаю, rank
выполняется только после предложения group by
и order
рядом с rank
также выполняется только после предложения group by
.
Обновление
В случае, если SQLFiddle не запускается, вот запрос, который я использовал для создания таблицы:
CREATE TABLE table_1
(
col_1 varchar(30)
);
INSERT INTO table_1
(col_1)
VALUES
('foo'),
('foo'),
('bar'),
('bar')
;