目前我得到这样的结果(2个结果行):
type|totalUnits
N | 111
E | 67
但是,我想得到这样的结果(1个结果行):
totalUnitsN|totalUnitsE|totalOfBothNandE
111 |67 | 178
是否有一些方便/推荐的SQL-snippet可用于将第一个示例转换为第二个示例?基本上,第一个示例是通过基于类型字段对所有数据进行分组,然后将大约20列汇总到该一个totalUnit字段来生成的。基本上我想保持该查询,然后以某种方式将该数据转换/“合并”到一行。但如果最好的方法不包括我目前的第一步,我也可以考虑从头开始编码。
答案 0 :(得分:2)
条件聚合似乎很简单:
select sum(case when type = 'N' then totalUnits else 0 end) as totalUnits_N,
sum(case when type = 'E' then totalUnits else 0 end) as totalUnits_E,
sum(totalUnits) as totalUnits
from t
where type in ('N', 'E');