2013-01-03 57 views
3

誰能告訴我什麼是sum在Oracle分區sum(SUM(SUM(VAL)))裏面的意義,下面的代碼片段總和甲骨文窗函數

SELECT NMS, 
     SUM(SUM(VAL)) OVER(PARTITION BY NMS), ---- SIGNIFICANCE 
     EMPNO, 
     SUM(SUM(VAL)) OVER(PARTITION BY EMPNO) ---- SIGNIFICANCE 
    FROM PART_TEST_PART 
GROUP BY NMS, EMPNO; 

回答

6

其計算VAL總和每NMS(用於第一個)和EMPNO(第二個)。

先通過+ SUM(VAL)評估該組,然後分析計算該結果。

例如如果你有結果後組由

EMPNO NMS SUM(VAL) 
1  a 15 
1  b 24 
2  a 50 

你必須SUM(SUM(VAL)) OVER(PARTITION BY NMS)作爲

EMPNO NMS SUM(VAL) SUM(SUM(VAL)) OVER(PARTITION BY NMS) 
1  a 15  65 (15+50 for NMS = a) 
1  b 24  24 (24 for NMS = b) 
2  a 50  65 (15+50 for NMS = a) 

你必須SUM(SUM(VAL)) OVER(PARTITION BY EMPNO)

EMPNO NMS SUM(VAL) SUM(SUM(VAL)) OVER(PARTITION BY EMPNO) 
1  a 15  39 (15+24 for EMPNO = 1) 
1  b 24  39 (15+24 for EMPNO = 1) 
2  a 50  50 (50 for EMPNO = 2) 
+1

的完整說明,請訪問:HTTP ://docs.oracle.com/cd/E11882_01/server.112/e26088/functions004.htm#i81407並在此處:http://docs.oracle.com/cd/E11882_01/server.112/e25554/analysis.htm #DWHSG021 –