窗口函数之sum()/count()/ max()/min()/over() 聚合窗口函数

1、<窗口函数> over ( partition by <分组的列名> )

      当聚合函数没使用 order by 时,聚合函数按分区全部数值计算

2、<窗口函数> over ( partition by <分组的列名> order by <排序的列名>)

      当聚合函数同时使用 partition by 和 order by 时,聚合函数按分区逐行叠加计算

                                                                                    order by  按排序规则累加计算

以牛客SQL143为例:

表exam_record

每份每份试卷每月作答数:count(  )over(partition by  )

类似于使用 group by 后,对每个分区进行一次 count 计算,同一个分区下每一行都做了相同的计算(故这里用了distinct去重)

截止当月作答总数:count(  )over(partition by   order by    )

类似于对当前行及之前的数据进行聚合计算,适合统计一些累计值 (像递归集合)

补充:使用over子句与聚合函数 (聚合窗口函数),分组效率比group by 更高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值