oracle over partition开窗函数_oracle取两个值中最大的一个

oracle over partition开窗函数_oracle取两个值中最大的一个Oracle开窗函数(分析函数)以及滑动窗口Oracle窗口函数也叫分析函数,是系统自带的一种函数。可以对数据的结果集进行分组操作,然后对分组的数据进行分析统计,可以在每个分组的每一行中返回统计值。这里要注意:分析函数和分组统计

Oracle开窗函数(分析函数)以及滑动窗口   Oracle窗口函数也叫分析函数,是系统自带的一种函数。可以对数据的结果集进行分组操作,然后对分组的数据进行分析统计,可以在每个分组的每一行中返回统计值。   这里要注意:分析函数和分组统计函数group by不是一个概念,group by只是对数据集进行分组操作然后返回值,而且不能够在原来的数据集上返回,分析函数则可以在原来的数据集上新增列,这一列就可以写不同分析函数的返回值。   分析函数通常和over()开窗函数结合使用。   1.聚合开窗函数   常见的有sum() count() avg() max() min() wm_concat()   着重注意:聚合开窗函数很少使用order by排序,因为在使用的时候要注意滑动窗口(后续详解)。   2.排序开窗函数   row_number() dense_rank() rank()   排序开窗函数可以使用partition by和order by语句。   三者区别为:   row_number()不考虑重复值,序号是连续的   
在这里插入图片描述   dense_rank()考虑重复值,序号是连续的   
在这里插入图片描述   rank()考虑重复值,序号不连续   
在这里插入图片描述   3.其他的一些分析函数   FIRST_VALUE 窗口的第一个值   LASY_VALUE 窗口的最后一个值   LEAD 当前行后面的值   LAG 当前行前面的之   NTH_VALUE 指定行的数据   NTILE 根据设定的组数对记录进行平均分组并编号   PERCENT_RANK 类似于RANK,[0,1]   CUME_DIST 类似于RANK,(0,1],不会返回0   LAG():   
在这里插入图片描述   LEAD():   
在这里插入图片描述   4.滑动窗口   ①BETWEEN 开始关键字 AND 结束关键字   为保证时间复杂度O(1),聚合函数和last_value函数的滑动窗口边界为分区的第一个和当前行.所以使用聚合函数搭配order 和last_value函数的输出结果有些怪异,每次都不和分区内的后面数据计算,这时候就需要指定窗口边界.   窗口边界:   unbounded:无界限   current row:当前行,偏移量为0,一般和其他范围关键字一起使用   unbounded preceding 边界是分区中的第一行   unbounded following 边界是分区中的最后一行   N preceding 边界是当前行减去N的值,N为相对当前行向前的偏移量.从分区第一行头开始,则为 unbounded.   N following 边界是当前行加上N的值,N为相对当前行向后的偏移量.与preceding相反,到该分区结束,则为 unbounded.   实例:   
在这里插入图片描述   ②NTH_VALUE()   
在这里插入图片描述   可以看到,对课程号进行分组后,可以取出每一组位移量处的字段值。   ③   FROM FIRST:从窗口的第一行开始找位移后的数据行   FROM LAST:从窗口的最后一行开始找位移后的数据行   
在这里插入图片描述

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/50649.html

(0)
上一篇 2024年 9月 3日 上午11:12
下一篇 2024年 9月 3日

相关推荐

关注微信