美文网首页
SQL中的窗口函数

SQL中的窗口函数

作者: 我就是鱼鱼鱼 | 来源:发表于2021-07-27 18:48 被阅读0次

简介

窗口函数也叫OLAP函数,一般用于聚合函数无法实现的高级操作

语法

窗口函数语法

常见的窗口函数

1、聚合函数(sum、count、max等)

2、专用函数:rank、dense_rank、row_number 

实例

1、分区统计个数(统计部门号为20的员工总数):使用count(*)over() 统计分区中所有计数,

使用count(*) over()统计分区中所有数据

如果没有over() 函数,统计的结果是对每一个first_name单独计数,使用over()函数则是将所有满足department_id = 20的数据进行统计。

2、partition by 定义行的分区或组,使用该函数对分组的行组进行聚类

*** 该函数中还需要和over() 进行联合使用

partition by分组统计

以上例子中使用department_id 进行partition分组,所以统计结果会将每一个department_id进行以此分组,然后统计每个该ID下面的数量。

***优点:在同一个select函数中一个partition by 函数独立于其他分区函数计算

在同个selcet中,每个partition by 都是相互独立的

实例:

针对以下的例子计算出每个员工与平均分数的差值

计算实际分数与平均分数的差值

3、窗口函数中的排序函数,其中rank()为非连续排名函数(1,1,2,2,5),dense_rank为连续排名(1,1,2,2,3)

实例:

查找出科目三各同学排名情况

使用rank()查看排名 使用连续函数dese_rank() 查看排名

4、错行函数(lag,lead),lag上几行,lead下几行

(lag,lead)语法 使用(lag,lead)效果展示

5、order by 如果是在窗口函数中使用,那么排序是在窗口中进行排序,实际的运用中会起到累计的作用

如以下的例子:

在partition中使用与不使用order by 区别

使用order by之后会将partition 分组后的的数据按照order by 后面的数据进行累计汇总方式

窗口函数用于计算累加值 

描述:现存在表salaries,其中包含员工ID字段emp_no,薪资字段salary,现按照salary的累计和running_total,其中running_total为前N个当前( to_date = '9999-01-01')员工的salary累计和,其他以此类推

相关代码如下:

使用窗口函数计算累计

运行结果如下:

使用窗口函数计算累计

窗口函数:row_number()

对窗口函数中的数据进行排序,一般会结合order by 函数使用

描述:现存表employees,需要输出first_name排名(按first_name升序排序)为奇数的first_name

代码如下:

窗口函数row_number()

相关文章

  • hive窗口函数盘点

    在支持窗口函数里的sql里,善用窗口函数,能降低sql编写复杂度并提高sql执行效率。 窗口函数 function...

  • SQL窗口函数, since 2022-04-11

    (2022.04.11 Mon) 窗口函数 窗口函数是作用于数据关系中的一系列记录的SQL函数,这些记录称为窗口(...

  • SQL中的窗口函数

    简介 窗口函数也叫OLAP函数,一般用于聚合函数无法实现的高级操作。 语法 常见的窗口函数 1、聚合函数(sum、...

  • Hive SQL 窗口函数

    本文首发:大数据每日哔哔-Hive SQL 窗口函数 Hive 的窗口函数 在 SQL 中有一类函数叫做聚合函数,...

  • 窗口函数(OVER 子句)

    窗口函数简介 数据准备 问题描述 解答 窗口函数简介 窗口函数是 SQL 中一类特别的函数。 和聚合函数相似,窗口...

  • Mysql窗口函数

    参考: MySQL 8.0窗口函数:用非常规思维简易实现SQL需求 数分面试-SQL篇 一、mysql窗口函数简介...

  • SQL中的窗口函数总结

    over() 窗口函数 语法结构: 分析函数 over(partition by 列名 order by 列名 r...

  • SQL窗口函数

    SQL窗口函数 partition by order by rank, dense_rank, row_numbe...

  • 《SQL基础教程》学习笔记Ch8

    8 SQL高级处理 8-1窗口函数 8-1-1什么是窗口函数 窗口函数也称为 OLAP 函数。OLAP是OnLin...

  • 牛客 sql23 对所有员工的当前(to_date='9999-

    sql答案 使用变量的方法 牛客中 暂不支持 使用窗口函数

网友评论

      本文标题:SQL中的窗口函数

      本文链接:https://www.haomeiwen.com/subject/oqlcmltx.html