开窗函数学习

一、开窗函数

对一组值进行操作,不像普通聚合函数那样需要用到group by子句对数据进行分组,能够在同一行中返回基础行的列和聚合列

开窗函数的语法形式:函数+over(partition by<分组用列> order  by<排序用列>),表示对数据集按照分组用列进行分区,并且对每一个分区按照函数聚合计算。最终将计算结果按照排序用列排序后返回到该行。括号中的两个关键词partition by 和order by 可以只出现一个。

注:开窗函数不会互相干扰,因此在同一天查询语句汇总可以同时使用多个开窗函数

二、排序开窗函数

① row_number() -- 相同值排名顺延,返回结果1、2、3、4

② rank() -- 相同结果排名相同,后续排名不连续,返回结果为 1、2、2、4

③ dense_rank() -- 相同结果排名相同,后续排名顺延,返回结果为 1、2、2、3

④ ntile(n) -- 分组排名,将数据分为n组并返回对应组号1、2......n

三、聚合开窗函数

① sum() -- 分组求和

② count() -- 分组求总数

③ min() -- 分组求最小值

④ max() -- 分组求最大值

⑤ avg() --分组求均值

posted @ 2023-11-07 14:09  末叶da  阅读(31)  评论(0)    收藏  举报