一、分析函数语法
1.1 参数详解
function_name():函数名称
argument:参数
over( ):开窗函数
partition_Clause:分区子句,数据记录集分组,group by…
order by_Clause:排序子句,数据记录集排序,order by…
windowing_Clause:开窗子句,定义分析函数在操作行的集合,三种开窗方式:rows、range、Specifying
注:使用开窗子句时一定要有排序子句!!!
🍃 1.2 常用分析函数
row_number() over(partition by … order by …) -- 根据字段排序
rank() over(partition by … order by …) -- 排序字段
dense_rank() over(partition by … order by …)
Oracle rank()分析函数:
分为:(1)连续或不连续:dense_rank,rank
(2)分区或不分区:使用partition,不使用partition
count() over(partition by … order by …)
max() over(partition by … order by …)
min() over(partition by … order by …)
sum() over(partition by … order by …)
avg() over(partition by … order by …)
first_value() over(partition by … order by …)
last_value() over(partition by … order by …)
lag() over(partition by … order by …)
lead() over(partition by … order by …) -- 返回上一列数据 lead(NET_VALUE, 1, null)
二、汇总
1、count() over() :统计分区中各组的行数,partition by 可选,order by 可选
2、sum() over() :统计分区中记录的总和,partition by 可选,order by 可选
3、avg() over() :统计分区中记录的平均值,partition by 可选,order by 可选
4、min() over() :统计分区中记录的最小值,partition by 可选,order by 可选
5、 max() over() :统计分区中记录的最大值,partition by 可选,order by 可选