分析函数之开窗函数over
一、分析函数 -- Oracle从8.1.6开始提供分析函数,专门用于解决复杂报表统计需求的功能强大的函数, -- 它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。分析函数用于计算基于组的某种聚合值。 -- 它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。普通的聚合函数用group by分组, -- 每个分组返回一个统计值;而分析函数采用partition by分组,并且每组每行都可以返回一个统计值。 -- 1、分析函数的形式: -- 分析函数带有一个开窗函数over(),在窗口函数中包含三个分析子句:分组(partition by), 排序(order by), 窗口(rows) , -- 他们的使用形式如下:over(partition by xxx order by yyy rows between zzz)。 -- 注:窗口子句在这里我只说rows方式的窗口,range方式和滑动窗口也不提。 -- 例如:统计函数+over()、排序函数+over()、数据分布函数+over()、统计分析函数+over()。 -- 2、开窗函数: 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能 /* 会随着行的变化而变化 */ 。例如over函数 二、窗口函数 -- 窗口函数中常用的子句有:分区