2016-03-23 166 views
0

我有如下表:如何從兩個colums總結數據,並在Oracle SQL partion它

COLA COLB COLC COLD 
CSA 201603 0  10 
ABC 201603 0  800 
PQR 201603 0  400 
ABC 201603 0  1000 
CSA 201603 0  800 
PQR 201604 1000 0 

,需要在以下格式輸出:

COLA COLB COLC COLD 
ABC 201603 0  1000 
ABC 201603 0  800 
PQR 201604 1000  0 

條件這裏是:COLA的組合和COLB作爲鍵,所以只打印那些COLC + COLD> 1000的值,其餘的忽略

需要oracle SQL以上輸出,pl建議!

回答

1

你的直覺是對的。執行此操作的簡單方法使用分析函數:

select cola, colb, colc, cold 
from (select t.*, sum(colc + cold) over (partition by cola, colb) as sumab 
     from t 
    ) t 
where sumab >= 1000; 
0
SELECT COLA, 
     COLB, 
     COLC, 
     COLD 
FROM (
    SELECT COLA, 
     COLB, 
     COLC, 
     COLD, 
     SUM(COLC + COLD) OVER (PARTITION BY COLA, COLB) AS total 
    FROM table_name 
) 
WHERE total > 1000;