当前位置:网站首页>窗口函数笔记
窗口函数笔记
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: 取分组内排序后,截止到当前行,最后一个值
边栏推荐
- 多商户商城系统功能拆解18讲-平台端商家售后
- codeforces 线段树题单
- 种类并查集(反集),学习T宝代码
- 一文看懂拉格朗日乘子法、KKT条件和对偶问题
- devops学习(五) Jenkins 简单完成持续部署
- Why does LabVIEW freeze when saving a VI
- High - level - the rest - the client determine whether indexes exist
- How to make labview an application (labview program recognizes shapes)
- 「大厂必备」系列之Redis主从、持久化、哨兵
- 指令集数据产品如何设计和实现报表协同系统——基于指令集物联网操作系统的工业协同制造项目开发实践
猜你喜欢

mysql使用on duplicate key update批量更新数据

devops学习(七) sonarqube 代码质检工具

Dropout回顾

线上无序的

windows下 PHP 安装

Analysis of miscellaneous diseases such as DNS domain name hijacking in instant messaging mobile terminal development

High Numbers|Calculation of Triple Integral 3|Uncle High Numbers|Handwritten Notes

Guidelines for the Release of New WeChat Mini Programs

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

多商户商城系统功能拆解18讲-平台端商家售后
随机推荐
容器化 | 在 Rancher 中部署 MySQL 集群
Vulkan与OpenGL对比——Vulkan的全新渲染架构
对数据库进行增删改查操作
接口性能测试方案设计方法有哪些?要怎么去写?
第一范式、第二范式、第三范式
Minesweeper game in c language
全国双非院校考研信息汇总整理 Part.5
In 2022, the latest Gansu construction staff (material staff) mock exam questions and answers
单片机开发之基本并行I/O口
jenkins use and maintenance
Huawei 14 Days - (3) Kernel Development
MySQL事务(transaction) (有这篇就足够了..)
[leetcode] 80. Delete duplicates in sorted array II (medium) (double pointer, in-place modification)
全国双非院校考研信息汇总整理 Part.1
JVM初探- 内存分配、GC原理与垃圾收集器
The difference and usage of call, apply and bind
leetcode122. Best Time to Buy and Sell Stock II 买卖股票的最佳时机 II(简单)
CesiumJS ^ source read [0] 2022 - article directory and source engineering structure
高数下|三重积分的计算3|高数叔|手写笔记
标签分发协议(LDP)