如何将数据库中两类可互换的Value_Type值合并聚合统计?
解决方案:合并指定Value_Type的聚合求和
刚好碰到过类似的需求,要实现把Value_Type为A和B的Value_Tx合并求和,其他类型单独聚合的话,用CASE语句来动态调整分组键就可以轻松搞定,具体SQL代码如下:
SELECT SUM(Value_Tx) AS Sum, CASE WHEN Value_Type IN ('A', 'B') THEN 'A | B' ELSE Value_Type END AS Value_Type FROM your_table_name GROUP BY CASE WHEN Value_Type IN ('A', 'B') THEN 'A | B' ELSE Value_Type END;
代码说明:
CASE语句会将所有Value_Type为A或B的行统一标记为'A | B',其他类型则保留原取值;- 分组时使用完全相同的
CASE逻辑,这样就能把A和B的行归为同一组计算总和,其他类型各自独立分组; - 如果后续需要调整合并的类型,只需要修改
IN ('A', 'B')中的取值即可,灵活性很强。
执行这段代码后,就能得到你期望的结果:
Sum Value_Type
14 A | B
8 C
1 D
7 F
内容的提问来源于stack exchange,提问作者John Wick
相关产品推荐
相关产品推荐

