SQL-窗口函数知识点及案例学习

文章介绍了窗口函数的概念,包括其组成部分——函数和窗口,以及如何通过`partitionby`和`orderby`定义窗口。通过实例展示了窗口函数在用户订单排序、计算订单间隔和累计用户购买VIP数量等场景的应用,如`dense_rank()`、`rank()`、`row_number()`、`LAG()`和`LEAD()`等函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、窗口函数整体思路

2、典型窗口函数应用

2.1、排序

2.2、偏移

2.3、其他:如累计求和


1、窗口函数整体思路

窗口函数,顾名思义包含两个部分,窗口和函数

函数:是指数据的统计方式,如排序、求和、求均值等等

窗口:是指在什么范围内进行统计,可以想象为一个小窗户,通过这个小窗户可以看到整体数据的一部分,那么前面的函数就在这个窗口可见的数据范围内生效。并且这个小窗户是可以移动的,窗口移动时,数据范围也在变化。同时,窗口外的整体数据要有一定的分布方式而不是混乱零散的,只有这样,窗口看到的数据才是有规律的,分布方式有两个参数决定:

partition by:分组

order by :排序

所以一个完整的窗口函数的写法应该是这样的:

函数()over(partition by col1 order by col2)

这样讲,可能有些难理解,那么我们带入到实际的案例中看一下,窗口函数是如何使用的

2、典型窗口函数应用

2.1、排序

现在有一些用户的下单信息,想给每个用户下的订单按下单日期进行排序

user_id date 订单id
小红 2022-01-01

001

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值