这是我的例子
我的数据(表_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')
;