当前位置:网站首页>窗口函数笔记
窗口函数笔记
2022-07-29 23:42:00 【The code family】
- 窗口函数也叫做开窗函数,其最大的特点是输入值是从select语句的结果集中的一行或者“多行”窗口中获取的
- 如果函数具有over()子句,则说明它是窗口函数
- 窗口函数可以简单的解释为类似于聚合函数的计算函数,但是通过group by子句组合的常规聚合会隐藏正在聚合的各个行,最终输出一行,窗口函数聚合后还可以访问当中的各个行,并且可以将这些行中的某些属性添加到结果集中
- 语法规则:

- 以sum函数举例窗口函数,注意是整体聚合还是累积聚合
- sum(...) over():对表所有行求和
- sum(...) over(order by...):连续累积求和
- sum(...) over(partition by...):同组内所有行求和
- sum(...) over(partition by... order by...):在每个分组内,连续累积求和
- 窗口表达式:(1)在sum(...) over(partition by... order by...)语法完整的情况下,进行累积聚合操作,默认累积聚合行为是从第一行聚合到当前行
(2)Window expression窗口表达式给我们提供了一种控制行范围的能力,语法如下:

- 窗口排序函数—row_number家族
- row_number():在每个分组中,为每行分配一个从1开始的唯一序列号,递增,不考虑重复
- rank():在每个分组中,为每行分配一个从1开始的序列号,考虑重复,挤占后续位置
- dense_rank():在每个分组中,为每行分配一个从1开始的序列号,考虑重复,不挤占后续位置
- 窗口分析函数:(1)lag(col,n,default):用于统计窗口内往上第n行值。其中第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL的时候,取默认值,如不指定,则为NULL)
(2)lead(col,n,default):用于统计窗口内往下第n行值
(3)first_value:取分组内排序后,截止到当前行,第一个值
(4)last_value: 取分组内排序后,截止到当前行,最后一个值
边栏推荐
- 管理区解耦架构见过吗?能帮客户解决大难题的
- 微信小程序获取手机号getPhoneNumber接口报错41001
- c语言小游戏扫雷
- codeforces 线段树题单
- codeforces每日5题(均1600)-第二十六天
- 学会使用MySQL的Explain执行计划,SQL性能调优从此不再困难
- UE4 makes crosshair + recoil
- [leetcode] 80. Delete duplicates in sorted array II (medium) (double pointer, in-place modification)
- SQL Server、MySQL主从搭建,EF Core读写分离代码实现
- 接口性能测试方案设计方法有哪些?要怎么去写?
猜你喜欢
![CesiumJS ^ source read [0] 2022 - article directory and source engineering structure](/img/6a/0a446eb00fb73275897cbfb336e0b0.png)
CesiumJS ^ source read [0] 2022 - article directory and source engineering structure
![[leetcode] 75. Color classification (medium) (double pointer, in-situ modification)](/img/0e/e4ed76902194755a3b075a73f272f3.png)
[leetcode] 75. Color classification (medium) (double pointer, in-situ modification)

devops学习(八) 搭建镜像仓库---jenkins推送镜像

437. 路径总和 III ●●

接口性能测试方案设计方法有哪些?要怎么去写?

1326. 灌溉花园的最少水龙头数目 动态规划

微信小程序获取手机号getPhoneNumber接口报错44002

EA&UML日拱一卒-多任务编程超入门-(7)关于mutex,你必须知道的

管理区解耦架构见过吗?能帮客户解决大难题的

The latest Gansu construction welder (construction special operation) simulation question bank and answer analysis in 2022
随机推荐
C陷阱与缺陷 第5章 库函数 5.4 使用errno检测错误
C陷阱与缺陷 第4章 链接 4.1 什么是链接器
微信小程序获取手机号getPhoneNumber接口报错41001
全国双非院校考研信息汇总整理 Part.1
全国双非院校考研信息汇总整理 Part.6
Mysql8.0新特性之详细版本
Prometheus 的功能特性
Allure环境部署与生成+Allure内容增强
重庆OI 2005 新年好
Dropout回顾
CesiumJS ^ source read [0] 2022 - article directory and source engineering structure
[2023 School Recruitment Questions] Summary of Common Interview Questions (7. Common Bus Protocols) (Continuously updated with subsequent interviews....)
go语言(函数、闭包、defer、panic/recover,递归,结构体,json序列化与反序列化)
jenkins use and maintenance
全国双非院校考研信息汇总整理 Part.8
单片机开发之基本并行I/O口
全国双非院校考研信息汇总整理 Part.4
HRNet-Facial-Landmark-Detection 训练自己数据集
Windows 安装 MySQL 5.7详细步骤
MySQL事务(transaction) (有这篇就足够了..)