OVER子句支持四种排名函数:ROW_NUMBER()、RANK()、DENSE_RANK()、NTIL()。
先直接给一个例子吧:
select orderid,custid,val,
ROW_NUMBER() OVER(ORDER BY val) as rownum,
RANK() OVER(ORDER BY val) as rank,
DENSE_RANK() OVER(ORDER BY val) as dense_rank,
NTILE(10) OVER(ORDER BY val) as ntile
from OrderValue;
查询结果如下图所示:
ROW_NUMBER函数用于为查询的结果集中的各行分配递增的序列号,其逻辑顺序通过OVER子句中的ORDER BY语句进行指定% |