Sql 如何获得列在同一行上的分组总和?

Sql 如何获得列在同一行上的分组总和?,sql,oracle,analytics,Sql,Oracle,Analytics,我有下面的模型数据 itemNum itemName type count ------------------------------------------------- 1111 A001 1 2 1111 A001 1 4 1111 A001 3 2 1111 A001

我有下面的模型数据

itemNum    itemName       type        count  
-------------------------------------------------  
1111       A001           1           2  
1111       A001           1           4  
1111       A001           3           2  
1111       A001           3           5  
1111       A001           3           3  
1111       A001           3           6  
2222       A002           1           3  
2222       A002           1           5  
2222       A002           2           4  
2222       A002           2           7  
2222       A002           3           8  
2222       A002           3           9  
我需要在同一行中列出的每种类型的一个项的总和,(只有3种类型,因此将有三列sum1、sum2、sum3。)我需要的结果是

itemNum    itemName      sum1      sum2      sum3  
--------------------------------------------------  
1111        A001         6          7         9
2222        A002         8          11        17

如何编写oracle sql脚本?谢谢。

只需使用条件聚合:

select itemnum, itemname,
       sum(case when type = 1 then count end) as sum_1,
       sum(case when type = 2 then count end) as sum_2,
       sum(case when type = 3 then count end) as sum_4
from t
group by itemnum, itemname;

只需使用条件聚合:

select itemnum, itemname,
       sum(case when type = 1 then count end) as sum_1,
       sum(case when type = 2 then count end) as sum_2,
       sum(case when type = 3 then count end) as sum_4
from t
group by itemnum, itemname;

您可以按如下方式使用透视:


干杯

您可以按如下方式使用
pivot

干杯