繁体   English   中英

如何在同一行中列出分组的总和?

[英]How to get grouped sums listed on the same row?

我有以下模拟数据,

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;

您可以使用pivot如下:

 Select * from (Select * from your_table) Pivot ( Sum(count) for type in (1 as sum_1, 2 as sum_2, 3 as sum_3) )

干杯!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM