窗口函数和Group by

本文探讨了SQL中的groupby与窗口函数(window function)如何配合使用,通过实例解释了先分组后开窗的操作逻辑。举例说明了在分组基础上,对count(score)进行窗口聚合,如何导致不同分组结果被归并到同一窗口中,进而影响最终的聚合结果。此用法在实际应用中虽不常见,但有助于深入理解SQL的聚合与分组机制。
摘要由CSDN通过智能技术生成

groupby在窗口函数前执行,窗口函数对分组后的结果集再开窗

比如下表

select
        lesson,
        count(*) over (partition by lesson) as count
 from test.test  group by lesson;

得到的

先分组得到

lesson=E的一组和lesson=Math的一组,在以lesson开窗,那每个窗口内就是自己分组聚合的一行数据.

执行以下sql

 select
        lesson,
        count(*) over (partition by count(score)) as count
 from test.test  group by lesson;

得到的

原本lesson=E的一组和lesson=Math的count(score)都为4,所以以count(score)开窗,他俩每组的唯一一行聚合结果就分到一个窗口中,再对开窗内的列聚合就为2.

实际遇见的少

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值