分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。
它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行,比如经常用来计算一些分组数据的总和和平均值之类,常用函数有AVG()、SUM()、MIN()、MAX()等等。。
语法:
rank ()over(partition by .. order by ..)
dense_rank()over(partition by .. order by ..)
row_number()over (partition by .. order by ..)
可实现按指定的字段分组排序,对于相同分组字段的结果集进行排序,其中partition by 为分组字段,order by 指定排序字段 MAX()OVER(PARTITION BY ...) SUM()OVER(PARTITION BY ...) TO_CHAR(WM_CONCAT(AA.gfrmc)OVER(PARTITION BY AA.HTBH))
说明:1代表全表,公司hz_jjhygl库的表查询如下
select rank() over(partition by 1 order by t.zccyryzs desc) as rank,
t.zccyryzs,
t.*
from hz_jjhygl.tpz_cyqyxx t
where t.lsbz = 0
and t.zccyryzs is not null;
学习视频的效果如下图所示。
其他参考博客:https://www.cnblogs.com/qiuting/p/7880500.html