2015-11-11 40 views
0

我的問題是與此類似,但答案是不是我想要的:一次通過分區和GROUP BY?

Cannot use group by and over(partition by) in the same query?

我的表是這樣的:

CODE_1 CODE_2 AMOUNT 
A  A.1  2 
A    4 
A    6 
B    1 
B  B.1  3 
B  B.1  5 

我想獲得總Code_1和[Code_1的,Code_2]像這樣:

CODE_1 CODE_2 Total_1 Total_2 
A  A1  12  2 
B  B1  9  8 

我可以在一個SELECT中得到結果嗎?謝謝!

+0

你使用了哪個數據庫? DB2?請添加適當的標籤。 –

+0

使用派生表或CTE。在內部表中進行分組。 – shawnt00

+0

給定的'CODE_1'可以有不同的'CODE_2'值嗎?如果是這樣,你的輸出應該如何? –

回答

3

這是你在找什麼?很難知道你打算如何處理CODE_2數據:

select 
    code_1, 
    max(CODE_2) as CODE_2, 
    sum(AMOUNT) as Total_1, 
    sum(case when CODE_2 is not null then AMOUNT end) as Total_2 
from T 
    group by CODE_1