2015-11-11 42 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