rank函数怎么排名sql中窗⼝函数总结
窗⼝函数⽤处: 排名:每个部门按业绩排名;TOPN:出每个部门前N的员⼯
什么是窗⼝函数: 叫OLAP(online anallytical )联机分析处理
基本语法: <> over (partition by <;分组的列名> order by <;排序的列名>) <;窗⼝函数>包含两种: 1.专⽤:, dense_rank, row_number 2.聚合:min,max,,avg 窗⼝函数原则上写在Select⼦句中 使⽤:rank 班级表 班级内排名,得到每个学号在⾃⼰班级排名 代码:select *,rank() over (partition by 班级 order by 成绩 desc)as ranking from 班级表 理解:①班级内按照班级分组 partition by ⽤来对表分组②按成绩排名,默认升序
partition和group by区别: group by分组汇总后改变了表的⾏数,⼀⾏只有⼀个类别,⽽partition by 和rank 函数不会减少表中的⾏数。 select 班级,count(学号)over (partition by 班级 order by 班级) as current_count from 班级表 为什么叫窗⼝函数,窗⼝表⽰范围 ⽤途:分组和排序同时不减少原表的函数
其他窗⼝函数 dense_rank,row_number,rank的区别 dense_rank:122334 row_number: 123456 rank:122446 注意rank()后⾯的括号⾥⾯不能为空
聚合函数作为窗⼝函数: sum(成绩),avg(成绩),count(成绩) 聚合函数sum在窗⼝函数中,,是对⾃
⾝技术,及位于⾃⾝记录以上的数据进⾏求和的结果。 ⽤处:聚合函数作为窗⼝函数,可以在每⼀⾏的数据中直观看到,截⽌到本⾏的数据,统计数据时多少,同时尅看出每⾏数据对于整体数据的影响。
partition by 可以省略,省略就是不指定分组,但是这样就失去了窗⼝函数的功能。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论