SQL开窗函数-排序rank、dense_rank、row_number
1、注意:
partition by 相当于 group by 分组的作用,可不加;desc 表示倒序排序,默认是正序
2、RANK()
说明:在进行排序时,如果有相同位次,会赋予与上一个名次相同的名次,并将下一位进行 1排序。例如,有3条数据排在第1位,2条数据排在第二位时,排序为:1,1,1,4,4,6······
代码示例:对第一次月考班级成绩进行排名 rank() over(partition by *** order by *** desc)
select
calss_name 班级名称
,student_name 学生姓名
,student_achievement 学生成绩
,rank() over(partition by calss_name order by student_achievement desc) rank
from 学生成绩信息表
where 考试类目 = '第一次月考'
结果示例:
班级名称 学生姓名 学生成绩 rank
大数据二班 常三飞 98 1
大数据二班 常中新 98 1
大数据二班 杨 夺 96 3
大数据二班 欧明健 96 3
大数据二班 郭志高 95 5
大数据二班 李绍幸 92 6
3、DENSE_RANK()
说明:在进行排序时,如果有相同位次,会赋予与上一个名次相同的名次,并将下一位进行顺排。例如,有3条数据排在第1位,2条数据排在第二位时,排序为:1,1,1,2,2,3······
代码示例:对第一次月考班级成绩进行排名 dense_rank() over(partition by *** order by *** desc)
select
calss_name 班级名称
,student_name 学生姓名
,student_achievement 学生成绩
,dense_rank() over(partition by calss_name order by student_achievement desc) d_rank
from 学生成绩信息表
where 考试类目 = '第一次月考'
结果示例:
班级名称 学生姓名 学生成绩 d_rank
大数据二班 常三飞 98 1
大数据二班 常中新 98 1
大数据二班 杨 夺 96 2
大数据二班 欧明健 96 2
大数据二班 郭志高 95 3
大数据二班 李绍幸 92 4
4、ROW_NUMBER()
说明:在进行排序时,每一位都要不同的序号,即便数据相同,也会随机安排前后位次。例如,有3条数据排在第1位,2条数据排在第二位时,排序为:1,2,3,4,5,6······
代码示例:对第一次月考班级成绩进行排名 row_number() over(partition by *** order by *** desc)
select
calss_name 班级名称
,student_name 学生姓名
,student_achievement 学生成绩
,row_number() over(partition by calss_name order by student_achievement desc) n_rank
from 学生成绩信息表
where 考试类目 = '第一次月考'
结果示例:
班级名称 学生姓名 学生成绩 d_rank
大数据二班 常三飞 98 1
大数据二班 常中新 98 2
大数据二班 杨 夺 96 3
大数据二班 欧明健 96 4
大数据二班 郭志高 95 5
大数据二班 李绍幸 92 6
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggcecc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13