MySQL DENSE_RANK函数简介

MySQL DENSE_RANK函数简介

DENSE_RANK()是一个窗口函数,它为分区或结果集中的每一行分配排名,而排名值没有间隙。
语法:

DENSE_RANK() OVER (PARTITION BY <expression>[{,<expression>...}]ORDER BY <expression> [ASC|DESC], [{,<expression>...}]
) 

其中,PARTITION BY子句将FROM子句生成的结果集划分为分区。DENSE_RANK()函数应用于每个分区。ORDER BY 子句指定DENSE_RANK()函数操作的每个分区中的行顺序。

如果分区具有两个或更多具有相同排名值的行,则将为这些行中的每一行分配相同的排名。
与RANK()函数不同,DENSE_RANK()函数始终返回连续的排名值。

还是有点绕,看看示例:
请添加图片描述

SELECTnumber1,DENSE_RANK() OVER (ORDER BY number1) my_rank
FROMdense_rank_test

结果:
请添加图片描述

分组

请添加图片描述

SELECTid,number,DENSE_RANK() OVER (PARTITION BY idORDER BY number DESC) number
FROMnumber_test

在这里插入图片描述

类似的还有RANK()函数,row_number(),有空的时候再写一篇比较比较区别


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部