玖叶教程网

前端编程开发入门

三、mysql窗口函数之dense_rank()函数的使用

1、窗口函数之dense_rank()使用背景:

上一章我们不是讨论了窗口函数rank()吗?使用rank()组内排序不是结果出现了跳级吗?就是同组同分数的“张三”和“安一”,为并列第一,然后同组“李二”跳过序号2,从序号3开始,仔细瞅瞅下图,发现了是不是这样?那如何不跳过序号2呢?那就看看dense_rank()这个窗口函数呗。


2、窗口函数dense_rank()的使用方法

SELECT
	id,
	NAME AS '姓名',
	score AS '分数',
	class AS '班级',
	dense_rank() over (PARTITION BY class ORDER BY score DESC) AS '班级名次'
FROM
	backup_csm.`demo`

查询结果如下图:

使用dense_rank()查询的结果“班级名次”不会出现跳级,不会出现像使用rank()后“班级名次”排序结果是1 1 3 ,而使用dense_rank()后“班级名次”查询的结果1 1 2,那么问题又来了,那如何让同组同分的“班级名次”按行号递增,不出现同号和跳级,请看下一章节噢。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言