You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL的CASE语句中对两个值求和?附查询代码

在CASE语句中实现多条件数值求和的解决方案

嘿,我懂你想实现的需求——把符合两个不同条件的数值在CASE逻辑里加总起来,其实这个操作很容易实现,核心思路就是把CASE判断嵌套在SUM聚合函数里就行,我给你一步步拆解:

核心逻辑说明

你原来的CASE是用来标记维度名称(比如gross_written_premiums),现在要计算对应维度的总和,只需要把判断条件放到SUM里,让每个符合条件的行贡献对应的数值,SUM会自动把这些值累加起来。

完整SQL示例

假设QRT_VALUES表中存储数值的字段叫amount(你可以替换成实际的字段名,比如value之类的),完整的查询语句应该是这样的:

SELECT 
    ORG.`id`,
    ORG.`organisation_name`,
    SFCR.report_date_year,
    -- 保留你原来的维度命名逻辑
    CASE 
        WHEN (QRT_VALUES.`template_id` = 'S.05.01.02.01' AND QRT_VALUES.`row_id` = 'R0110' AND QRT_VALUES.`column_id` = 'C0200') THEN 'gross_written_premiums'
        WHEN (QRT_VALUES.`template_id` = 'S.05.01.02.02' AND QRT_VALUES.`row_id` = 'R1410' AND QRT_VALUES.`column_id` = 'C0300') THEN 'gross_written_premiums'
    END AS Dimension,
    -- 这里实现两个条件下的数值求和
    SUM(
        CASE 
            WHEN (QRT_VALUES.`template_id` = 'S.05.01.02.01' AND QRT_VALUES.`row_id` = 'R0110' AND QRT_VALUES.`column_id` = 'C0200') THEN QRT_VALUES.`amount`
            WHEN (QRT_VALUES.`template_id` = 'S.05.01.02.02' AND QRT_VALUES.`row_id` = 'R1410' AND QRT_VALUES.`column_id` = 'C0300') THEN QRT_VALUES.`amount`
            ELSE 0 -- 用0代替NULL,SUM会自动忽略不影响结果,也可以直接写NULL
        END
    ) AS gross_written_premiums_total
FROM 
    ORG
-- 记得补充你实际的表关联条件
JOIN SFCR ON ORG.xxx = SFCR.xxx
JOIN QRT_VALUES ON SFCR.xxx = QRT_VALUES.xxx
-- 可选:过滤掉不符合条件的行,提升查询效率
WHERE 
    (QRT_VALUES.`template_id` = 'S.05.01.02.01' AND QRT_VALUES.`row_id` = 'R0110' AND QRT_VALUES.`column_id` = 'C0200')
    OR 
    (QRT_VALUES.`template_id` = 'S.05.01.02.02' AND QRT_VALUES.`row_id` = 'R1410' AND QRT_VALUES.`column_id` = 'C0300')
GROUP BY 
    ORG.`id`,
    ORG.`organisation_name`,
    SFCR.report_date_year,
    Dimension; -- 非聚合字段必须加入GROUP BY,否则会报错

关键注意点

  1. 替换数值字段:一定要把示例里的QRT_VALUES.amount``改成你表中实际存储数值的字段名。
  2. GROUP BY的必要性:因为用了SUM聚合函数,SELECT里所有非聚合的字段(比如ORG.id、Dimension等)都必须放到GROUP BY里,这是SQL的标准要求。
  3. 过滤条件优化:加上WHERE子句可以提前过滤掉不需要的行,让查询更快,如果你不需要保留其他维度的行,强烈建议加上。

内容的提问来源于stack exchange,提问作者bharath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:49:19