我有以下表格:
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建议!
答案 0 :(得分:2)
你的直觉是正确的。一种简单的方法是使用分析函数:
select cola, colb, colc, cold
from (select t.*, sum(colc + cold) over (partition by cola, colb) as sumab
from t
) t
where sumab >= 1000;
答案 1 :(得分:1)
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;