SQL Server Rank()和分组依据

时间:2018-10-02 19:27:18

标签: sql-server group-by rank

这是我的例子

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')
;

0 个答案:

没有答案