业界动态
窗口函数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/ , 查看更多   
最新文章
颜霸邝玲玲,我的泰娱新老婆
看到邝玲玲的第一眼多数人就能明白为什么她可以在中国收获超高人气。中泰混血的她脸上没有泰系常见的钝感,五官流畅、大气、明艳
6G进入标准化元年 通信专家建议重点挖掘垂直行业需求
3月27日至31日,2025中关村论坛年会在京举行。期间,中国工程院院士张平,中关村泛联院院长、中国移动研究院院长黄宇红,中关村
三星手机重装系统攻略:五步轻松恢复出厂设置三星手机系统「三星手机重装系统攻略:五步轻松恢复出厂设置」
简介:在现代智能手机的使用中,重装系统或恢复出厂设置是解决许多软件问题的有效手段。对于三星手机用户,重装系统可以帮助清理
买全球吃全球 感受“舌尖上”的消博会
中国青年报客户端讯(中青校媒记者 田恒慧 中青报·中青网见习记者 戴瑶 记者 任明超)4月13日,第五届中国国际消费品博览会(简
仰天长叹,山东男篮0:2出局:落寞爆冷,克里斯成难掩的心痛短板
CBA季后赛12进8,首战失利的山东男篮,客场挑战北控男篮。对于山东男篮来说,球队已经没有任何的退路,如果再输,那么本赛季就提
新奥好彩免费资料大全-精选解释解析落实酷派5855手机「新奥好彩免费资料大全-精选解释解析落实」
新奥好彩是一款在中国颇受欢迎的彩票游戏,借助现代科技和大数据分析技术,为广大玩家提供了丰富的购彩体验与相应的策略指导。随
这家“药厂”,专治年轻人不开心
中国精酿啤酒市场,正经历舶来品的本土化蜕变。中国酒业协会数据显示,啤酒行业保持高增长,反弹性增长态势明显。《2024—2029年
理想星环OS开源,到底意味着什么?
3月27日,董事长兼CEO李想在2025中关村论坛年会上宣布开源理想汽车自研汽车操作系统——理想星环OS。上述消息在一定范围内引起热
春节送父母vivo Y200t:超高性价比手机只需873元,功能惊艳!vivo性价比最高的手机「春节送父母vivo Y200t:超高性价比手机只需873元,功能惊艳!」
春节来临,买新手机送父母成为不少子女的新年选择。在这个团圆的节日里,送一份陪伴和实用的礼物无疑能带来更多的幸福感。尤其是
爱高集团盘中最低价触及0.181港元,创近一年新低
截至4月16日收盘,(00328.HK)报0.192港元,较上个交易日下跌7.69%,当日盘中最低价触及0.181港元,创近一年新低。资金流向方面