Row_number() Rank() Dense_rank

本文介绍了SQL中的三个排序函数:ROW_NUMBER(), RANK()和DENSE_RANK()。ROW_NUMBER()为每条记录分配唯一序号;RANK()在有相同值时给出相同排名,但跳过空位;DENSE_RANK()同样处理相同值,但排名是连续的。这些函数常与PARTITION BY和ORDER BY一起使用,以进行复杂的数据排序和筛选,例如从成绩表中找出学生的最新成绩。" 107014023,1156460,Selenium IDE:store命令详解与使用,"['自动化测试', 'Selenium']
摘要由CSDN通过智能技术生成

Row_number(), Rank() ,Dense_rank() 主要用于排序
ROW_NUMBER()函数作用就是将select查询到的数据进行排序,每一条数据加一个序号
Rank()
RANK()函数,顾名思义排名函数,可以对某一个字段进行排名,这里为什么和ROW_NUMBER()不一样那,ROW_NUMBER()是排序,当存在相同成绩时,ROW_NUMBER()会依次进行排序,他们序号不相同,而Rank()则不一样出现相同的,他们的排名是一样的。
DENSE_RANK()函数也是排名函数,和RANK()功能相似,也是对字段进行排名。
dense_rank 排序连续,rank 不连续。
范例:
存在如下数据
name score
libai 98
dufu 98
zhangjiuling 96
tanbohu 93

row_number()后 libai 1 dufu 2 zhangjiuling 3 tanbohu 4
Rank() libai 1 dufu1 zhangjiuling 3 tanbohu 4
DENSE_RANK() libai 1 dufu1 zhangjiuling 2 tanbohu 3

以上三函数基本会结合partition by XXX order by 一起使用。可用于排序也可用于排序后筛除无用数据。
例如 table :score_class

name   score  updateTime
A1         97      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值