聚合函数可以在分析模式或非分析模式下来进行运算。非分析模式下的聚合函数将结果集削减为较少的数据行。然而,在分析模式下,聚合函数并不减少输出结果行数。并且,聚合函数能够在一行中同时取得聚合和非聚合的列。分析模式的聚合函数提供了不需要任何自连接就可以聚合不同层级数据的能力。
创新互联公司专注于企业网络营销推广、网站重做改版、苏尼特左网站定制设计、自适应品牌网站建设、H5页面制作、商城网站开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为苏尼特左等各大城市提供网站开发制作服务。1. sum
可以把sum当做聚集函数来用,也可以当做分析函数来用
与前一个sql不同的是窗口的变化,这个例子中取的是开始行到当前行,即对当前行之前的行(包括当前行)求和
从结果中很容易理解sum分析函数
2. avg
和sum差不多,就不多说了
上面这两个语句是等价的,看看结果
下面这个语句,每三行求一次平均(前,中,后)
3. lag
lag提供一种方式访问当前位置的前面的行,默认offset是1,表示访问前一行
4. lead
利用lead可以访问当前位置后面的行
5. first_value和last_value
first_value取窗口中的第一个值,last_value取最后一个
6. rank
rank,意为排名、等级。
rank函数返回一个行的排名,值相等的行排名相同,排名是不连续的。对于top-N和bottom-N这样的操作来说,rank函数是很有用的。rank作为聚集函数时返回某一个假定值的排名,作为分析函数时返回每一行的排名。
7. row_number
row_number是一个分析函数,它给每一行指定一个编号,编号从1开始。
这个函数可以实现top-N,bottom-N,inner-N这样的操作。
注意也rownum伪列区分开,rownum对于每一行都返回一个数以表明被选中的顺序,比如1, 2……
8. listagg
listagg函数用于列转行
作为一个单行聚集函数,listagg作用于所有行并返回单一的一行
作为一个分组聚集函数,listagg作用于每个组,并为每个组返回一行
作为一个分析函数,listagg基于查询分区字句将数据分区,并为每个分区中的每一行返回相同的结果
measure_expr,指定要操作的列或表达式
delimiter_expr,指定分隔符
order_by_clause,决定结果的顺序
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款