当前位置:网站首页 > SQL数据库编程 > 正文

sql窗口函数是什么意思(sql 窗口函数 分析函数)



1 准备工作

网页链接

 ● 示例1

OVER 关键字表示把聚合函数当成聚合开窗函数而不是聚合函数。

SQL标准允许将所有聚合函数用做聚合开窗函数

 ● 示例2

OVER 关键字后的括号中还可以添加选项用以改变进行聚合运算的窗口范围。

如果 OVER 关键字后的括号中的选项为空,则开窗函数会对结果集中的所有行进行聚合运算。

开窗函数的 OVER 关键字后括号中的可以使用 PARTITION BY 子句来定义行的分区来供进行聚合计算。

注意:与 GROUP BY 子句不同,PARTITION BY 子句创建的分区是独立于结果集的,创建的分区只是供进行聚合计算的,而且不同的开窗函数所创建的分区也不互相影响。

网页链接

3.1 ROW_NUMBER顺序排序

row_number() over(order by score) as rownum 表示按score 升序的方式来排序,并得出排序结果的序号

PartitionBy分组

3.2 RANK跳跃排序

rank() over(order by score) as rank表示按 score升序的方式来排序,并得出排序结果的排名号。

这个函数求出来的排名结果可以并列,并列排名之后的排名将是并列的排名加上并列数

简单说每个人只有一种排名,然后出现两个并列第一名的情况,这时候排在两个第一名后面的人将是第三名,也就是没有了第二名,但是有两个第一名

3.3 DENSE_RANK连续排序

dense_rank() over(order by  score) as  dense_rank 表示按score 升序的方式来排序,并得出排序结果的排名号。

这个函数并列排名之后的排名只是并列排名加1

简单说每个人只有一种排名,然后出现两个并列第一名的情况,这时候排在两个第一名后面的人将是第二名,也就是两个第一名,一个第二名

3.4 NTILE分组排名[了解]

ntile(6) over(order by score)as ntile表示按 score 升序的方式来排序,然后 6 等分成 6 个组,并显示所在组的序号。

partition by

到此这篇sql窗口函数是什么意思(sql 窗口函数 分析函数)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • sql文本格式(sql文本格式转化为日期格式)2024-12-12 23:36:09
  • sqlserver while循环(sqlserverwhile循环表)2024-12-12 23:36:09
  • sql文件格式(sql文件格式后缀)2024-12-12 23:36:09
  • sql文件在哪里(sql数据库文件在哪)2024-12-12 23:36:09
  • sqlldr只导入指定字段(sqlldr导入字段有换行符)2024-12-12 23:36:09
  • 数据表的增删改查sql语句(数据库表增删改查)2024-12-12 23:36:09
  • pymysql怎么安装(pymysql如何安装)2024-12-12 23:36:09
  • mysql主键是唯一的吗(mysql中的主键)2024-12-12 23:36:09
  • sql里循环怎么用(sqlfor循环)2024-12-12 23:36:09
  • sql文件导入sqlserver数据库(.sql文件导入数据库)2024-12-12 23:36:09
  • 全屏图片