业界动态
窗口函数ROW_NUMBER()、RANK() 或 DENSE_RANK()排名,详解区别
2024-12-29 09:43

窗口函数(Window Function)是 SQL 中用于在查询结果中进行复杂计算的一类函数。它们通过对查询结果集的某个“窗口”进行操作,允许在不改变查询结果的前提下,执行类似于聚合函数的计算。与传统的聚合函数(如 、 等)不同,窗口函数不会将结果集压缩成单一的行,而是为每一行提供一个基于“窗口”内其他行的数据的计算结果。

1.窗口函数的基本结构

窗口函数的语法通常如下

  • :窗口函数的具体类型,如 、、、 等。
  • :指定如何将数据分组(类似于 ,在每个分组内独立地计算窗口函数。如果没有指定,窗口函数会作用于整个结果集。
  • :指定在分组内对行进行排序。排序对于许多窗口函数(如排名函数)非常重要。
  • :指定窗口的范围,决定窗口函数计算时考虑的行的范围。

2.常见的窗口函数

  1. : 为每一行分配一个唯一的序号,根据 排序。

  2. : 为每一行分配一个排名,相同的值会得到相同的排名,但排名是连续的,跳过重复的排名值。

  3. : 与 类似,但不会跳过排名值。即使有多个相同值,排名仍然是连续的。

  4. : 将数据分成 份,并为每一行分配一个组编号(1 到 n)。

  5. 、、、: 对窗口内的值进行求和、平均、最小值、最大值等计算,通常与 和 结合使用。

  6. : 返回当前行相对于前一行或后一行的值。常用于计算行与行之间的差异

3.窗口函数与聚合函数的区别

  • 聚合函数:会对数据进行分组,并返回每个分组的单一结果,如 , ,  等。
  • 窗口函数:不会对数据进行压缩或分组,而是在结果集的每一行上执行计算,可以结合分组和排序来计算出更多的信息。

举个例子,假设有一个员工表 ,包含 和 列,使用窗口函数 来计算每个员工所在部门的总薪资

这里, 会计算每个部门内所有员工的薪资总和,并为每个员工显示出来,而不会压缩为每个部门只显示一行结果。

4.窗口函数的常见应用场景

  1. 运行总和: 使用 或 可以计算从第一行到当前行的累计值,例如累计销售额。

  2. 移动平均: 使用 或 子句,可以计算移动平均值,这在金融和分析场景中很常见。

  3. 比较行与行之间的数据差异: 使用 或 可以比较当前行和相邻行的数据,比如计算每个员工工资与上一年工资的差异。

例子:计算每个员工与上一名员工薪水的差异

在这个例子中, 会返回当前员工薪资的前一个员工薪资,然后计算差异。

5.总结

    以上就是本篇文章【窗口函数ROW_NUMBER()、RANK() 或 DENSE_RANK()排名,详解区别】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/30673.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
最新文章
中交地产1元“退房”:战略转型与债务困境下的断臂求生
中交地产的这次“断臂求生”,不仅是企业自救的手段,更是一种行业趋势的缩影。中房报记者 梁笑梅丨北京报道7月25日,深陷退市危
邛崃市2025年7月招聘信息第四期共30家企业
四川金忠食品股份有限公司(邛崃市新邛路517号)1.研发工艺员 1名要求:40岁以下,大专以上学历,食品类专业,具备食品(肉制品
浙江义乌“大企帮小店”探索共富新路径
方静“张大酥是专门经营养生糕点的店铺,今年初才进驻李祖。当时‘大企’主动帮我们设计了具有李祖特色的糕点套装,义乌市市场监
北京移动应急通信保障恢复怀柔区72座基站,抢通40个行政村
7月28日北京青年报记者从北京移动了解到,截至18时,北京移动已抢通怀柔区雁栖开发区至汤河口48芯光缆一条,恢复汤河口、宝山、
小猫看伤花5000元,宠主质疑:诊所每天对小猫进行抽血检查等诊疗行为属于“过度医疗”
近日,芜湖繁昌区法院参考专家辅助人的意见,引导双方申请司法鉴定。调解过程中,专家辅助人详细分析了小猫病历,明确指出检查报
克莱斯勒300C 2.7汽车配件前羊角轴头刹车盘
克莱斯勒300C/2.7三元催化器 峰哲汽车尾灯后保险杠 切诺基大灯 我公司是一家专业从事别克与克莱斯勒汽车配件销售与服务的汽配企
他们是CS上海Major的“幕后功臣”,完美电竞合作伙伴联盟成立
从2019年的第九届DOTA2国际邀请赛(TI9),到2020年的英雄联盟全球总决赛(S10)、2024年的反恐精英世界锦标赛(CS上海Major),
军事资讯AI速递:昨夜今晨军事热点一览 丨2025年8月21日
  军事领域动态复杂,事件可能迅速改变全球安全格局。我们整理了昨夜今晨最重要的军事新闻,包括关键行动和政策变化,让您清晰
刚出炉!上海崇明成功认证“国际湿地城市”,将迎来什么发展机遇?
《湿地公约》第十五届缔约方大会于7月23日至31日在津巴布韦维多利亚瀑布城举行。全球共16个国家31个城市获得第三批“国际湿地城
疑似OPPO Find X9 Pro核心硬件曝光:搭载天玑9500 主频突破4GHz
【TechWeb】去年10月,OPPO推出了OPPO Find X8 Pro,这是全球首款配备双潜望长焦的天玑旗舰,拥有一颗5000万像素3倍索尼LYT-600