分析函數(shù)是什么?
分析函數(shù)是Oracle專門用于
解決復(fù)雜報(bào)表統(tǒng)計(jì)需求
的功能強(qiáng)大的函數(shù),
它可以在數(shù)據(jù)中進(jìn)行分組然后計(jì)算基于組的某種統(tǒng)計(jì)值
,并且每一組的每一行都可以返回一個(gè)統(tǒng)計(jì)值。
分析函數(shù)和聚合函數(shù)的不同之處是什么?
普通的聚合函數(shù)用group by分組,
每個(gè)分組
返回一個(gè)統(tǒng)計(jì)值,而分析函數(shù)采用partition by分組,并且
每組每行
都可以返回一個(gè)統(tǒng)計(jì)值。
分析函數(shù)的形式
分析函數(shù)帶有一個(gè)開窗函數(shù)over(),包含三個(gè)分析子句:分組(partition by), 排序(order by), 窗口(rows) ,他們的使用形式如下:over(partition by xxx order by yyy rows between zzz)。
注:窗口子句在這里我只說rows方式的窗口,range方式和滑動(dòng)窗口也不提
分析函數(shù)例子(在scott用戶下模擬)
示例目的:顯示各部門員工的工資,并附帶顯示該部分的最高工資。