搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
笔触狂放9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
sk-learn实例-用朴素贝叶斯算法(Naive Bayes)对文本进行分类_sklearn贝叶斯文本分类
2
第10章 网络安全(4)_网络层安全IPSec_winxp怎么打开ipsec的安全监视器界面,显示相关的安全属性
3
S3 命令行工具s3cm
4
Java程序员年薪40W是什么水平?税前还是税后?_年薪40w的java开发,什么水平
5
大数据与数据分析:大数据开发岗和分析岗对比_数据开发与业务分析
6
deepseek-vl 论文阅读笔记
7
AI大模型探索之路-实战篇7:Function Calling技术实战:自动生成函数_function-calling数据集
8
Python 界面设计_python界面设计
9
Mac系统安装Nginx_mac 安装nginx
10
八米云-N1盒子、S905系列机顶盒等设备-小白保姆式超详细刷机教程
当前位置:
article
> 正文
RANK、DENSE_RANK以及ROW_NUMBER区别_rank dense
作者:笔触狂放9 | 2024-07-15 10:40:44
赞
踩
rank dense
场景
数据库查询中,很多时候都会遇到对数据进行分组,然后组内排序加序号的需求。
应用
对于组内排序一般有三个函数可供使用,它们是RANK()、DENSE_RANK()以及ROW_NUMBER()。它们都是对分过组的数据排序加序号,不过又有各自的区别。
语法
它们的语法是一样的,如下:
[sql]
view plain
copy
ROW_NUMBER() OVER([PARTITION
BY
col1]
ORDER
BY
col2)
DENSE_RANK() OVER([PARTITION
BY
col1]
ORDER
BY
col2)
RANK() OVER([PARTITION
BY
col1]
ORDER
BY
col2)
其中[PARTITION BY col1]是可选的,即不分组,或者说所有满足条件的数据一组。
区别
三个函数都是按照col1分组内从1开始排序
其中,ROW_NUMBER() 是没有重复值的排序(即使两条记录相同,序号也不重复的),不会有同名次。
DENSE_RANK() 是连续的排序,两个第二名仍然跟着第三名。
RANK() 是跳跃排序,两个第二名下来就是第四名。
使用
下面用一个例子代码来说明一下区别。在例子中我们对员工工资按部门分组进行排序。注意rank的序号变化。
[sql]
view plain
copy
WITH
workers
AS
(
SELECT
'DOM1'
dept,
'zhangsan'
names , 23 age, 4000 salaries
FROM
dual
UNION
ALL
SELECT
'DOM1'
dept,
'lisi'
names , 35 age, 9000 salaries
FROM
dual
UNION
ALL
SELECT
'DOM1'
dept,
'zhangchen'
names, 35 age, 9000 salaries
FROM
dual
UNION
ALL
SELECT
'DOM1'
dept,
'qiansi'
names , 35 age, 4000 salaries
FROM
dual
UNION
ALL
SELECT
'DOM2'
dept,
'wangwu'
names , 26 age, 6500 salaries
FROM
dual
UNION
ALL
SELECT
'DOM2'
dept,
'maliu'
names , 28 age, 6000 salaries
FROM
dual
UNION
ALL
SELECT
'DOM2'
dept,
'zhaoqi'
names , 26 age, 5000 salaries
FROM
dual
UNION
ALL
SELECT
'DOM1'
dept,
'liba'
names , 23 age, 3000 salaries
FROM
dual
)
SELECT
s.names,s.salaries,s.names,dept, ROW_NUMBER() OVER(PARTITION
BY
dept
ORDER
BY
salaries
DESC
)rank
FROM
workers s;
结果如下,RANK列没有重复。
[sql]
view plain
copy
SELECT
s.names, dept, s.salaries, DENSE_RANK() OVER(PARTITION
BY
dept
ORDER
BY
salaries
DESC
)rank
FROM
workers s;
结果如下,相同salaries时,RANK有重复,但连续。
[sql]
view plain
copy
SELECT
s.names, dept, s.salaries, RANK() OVER(PARTITION
BY
dept
ORDER
BY
salaries
DESC
)rank
FROM
workers s;
结果如下,相同salaries时,RANK有重复,同时不连续。
总之,使用的时候一定要看自己的需要。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/笔触狂放9/article/detail/828975
推荐阅读
article
《Nature |
Dense
rein
for
cement
learning
for
safety
...
2023年3月22日,清华大学自动化系智能交通团队助理教授封硕(独立一作)与美国密歇根大学Mcity主任Henry Li...
赞
踩
article
LoRA
(Low-
Rank
Adaptation
)
模型
核心基础知识_
lora
模型
的
训练
逻辑是首先冻结...
假设原来
的
是100x1024
的
参数矩阵,那么参数量为102400,
LoRA
模型
将矩阵拆成了两个矩阵相乘,如果设置
Rank
...
赞
踩
article
创建
LabwindowsCVI
工程_
cvi
serial
number
...
前话:以前上大学时,一直在寻找一种简单的IDE,拥有如下特点:1、集成丰富的控件(可以显示波形);2、编程语言简单(最好...
赞
踩
article
Elasticsearch中
filter
查询
优化:
number
?
keyword
? 傻傻分不清楚_e...
【携程旅行网 吴晓刚】上周,在某多多搬砖的一位朋友在微信上找我咨询,说他们公司一个ES集群从2.4升级到5.5以后,一个...
赞
踩
article
【知识蒸馏】
Channel
-
wise
Knowledge
Distillation
for
Dens...
论文链接:https://arxiv.org/pdf/2011.13256.pdf代码链接:https://github...
赞
踩
article
hive
中
排序
函数
row
_
number
、
rank
、
dense
_
rank
的区别_
row
number
和r...
row
_
number
排序
字段值相同时,序号不同,下一个序号顺序自增
rank
排序
字段值相同时,序号相同,下一个序号跳...
赞
踩
相关标签
深度学习
人工智能
机器学习
AIGC
算法
目标检测
计算机视觉
hive
hadoop
数据仓库