2016-03-23 168 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;