分析函數式ORACLE提供的用來進行資料統計的強有力工具,與我們常用的彙總函式具有一些相似性,但又完全不同。彙總函式,首先會將資料進行分組,然後對每一組資料進行運算,如求和sum,求平均AVG等,對於彙總函式,每一個分組返回一條資料結果行。分析函數,同樣也會對資料進行求和或者求平均等運算,但是,分析Function Compute的基礎並不是分組,而是視窗,而且分析函數根據每條記錄會返回一個處理結果。
首先,看一下下面的例子:
SQL> select prod_subcategory_id,1 from products where prod_subcategory_id > 2053 order by prod_subcategory_id; PROD_SUBCATEGORY_ID 1 ------------------- ---------- <span style="color:#ff0000"> 2054 1 2054 1 2054 1 2054 1 2054 1 2054 1</span> <span style="background-color:rgb(0,153,0)"> 2055 1 2055 1 2055 1 2055 1 2055 1 2055 1 2055 1</span> <span style="color:#3333ff"> 2056 1 2056 1 2056 1 2056 1 2056 1</span> 已選擇18行。 SQL> select prod_subcategory_id,count(1) from products where prod_subcategory_id > 2053 group by prod_subcategory_id order by prod_subcategory_id; PROD_SUBCATEGORY_ID COUNT(1) ------------------- ---------- <span style="color:#ff0000"> 2054 6 //對分組1求和</span> <span style="background-color:rgb(0,153,0)"> 2055 7 //對分組2求和</span>
<span style="color:#3333ff"> 2056 5 //對分組3求和</span>
下面,是分析函數的執行結果