分析函数(窗口函数)

一、什么是分析函数: 分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。

     基本语法:<窗口函数> over (partition by <用于分组的列名>

                                                         order by <用于排序的列名>)

二、窗口函数:

      1.专用窗口函数:rank、dense_rank、row_number等,使用专用窗口函数,函数后面的()里不需任何参数,空着就行;

      2.聚合函数:sum、avg、count、max、min等

      3.rank、dense_rank和row_number区别 

                     例 :select *,rank() over (order by 成绩 desc)as ranking,

                                              dense_rank() over (order by 成绩 desc) as dese_rank,

                                             row_number() over (order by 成绩 desc) as row_num

                             from 班级表

           

 

    4.聚合函数作为窗口函数

        例       select *,

                            sum(成绩) over (order by 学号) as current_sum,
                            avg(成绩) over (order by 学号) as current_avg,
                            count(成绩) over (order by 学号) as current_count,
                            max(成绩) over (order by 学号) as current_max,
                            min(成绩) over (order by 学号) as current_min
                     from 班级表

                   

 

 

三、group by 与窗口函数都具有分组功能。有什么不同?

        答: group by 分组汇总后改变了表的行数,一行只有一个类别;而partition by 和rank函数不会减少原表的行数

四、窗口函数功能:1.同时具有分组和排序的功能;

                                 2. 不减少原表的行数

 

posted @   醉不在意  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示