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

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

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

使用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()查询结果展示

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

展开阅读全文

页面更新:2024-05-19

标签:行号   函数   窗口   同组   下图   名次   使用方法   序号   班级   分数

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top