【问题标题】:Sum in Oracle window functionOracle窗口函数中的求和
【发布时间】:2012-12-17 19:28:42
【问题描述】:

谁能告诉我在oracle分区中sum(SUM(SUM(VAL)))里面sum的意义是什么,在下面的代码sn-p中

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;

【问题讨论】:

    标签: sql oracle window-functions


    【解决方案1】:

    它计算VAL 每个NMS(第一个)和EMPNO(第二个)的总和。

    首先评估 group by + SUM(VAL),然后分析计算该结果。

    例如如果你在 group by of 之后得到了结果

    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)
    
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多