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

SQL查询优化求助:GROUP_CONCAT需按map分组求和后拼接

解决SQL查询结果不符合需求的问题

你的核心需求是按kode_satker分组后,对相同map对应的value求和,再将map-求和后的值按换行拼接,而原查询只是简单拼接了所有不同的行数据,没有做求和处理。

修改后的查询语句

SELECT 
    satker.kode_satker,
    GROUP_CONCAT(CONCAT(sub.map, '-', sub.total_value) SEPARATOR '\n') AS newvalue
FROM satker
LEFT JOIN (
    -- 先按kode_satker和map分组,计算每个map对应的总value
    SELECT 
        kode_satker,
        map,
        SUM(value) AS total_value
    FROM data
    GROUP BY kode_satker, map
) sub ON satker.kode_satker = sub.kode_satker
GROUP BY satker.kode_satker;

逻辑说明

  1. 子查询处理求和:先通过子查询对data表按kode_satker和map分组,用SUM(value)计算每个map在对应kode_satker下的总数值,得到每个组合的汇总结果。
  2. 外层拼接结果:将子查询的结果和satker表关联,再用GROUP_CONCAT把每个map-总数值的字符串按换行符(\n)拼接起来,最终得到你期望的格式。

这样就能得到符合需求的结果:

kode_satker | newvalue
100 | A-300
B-500
200 | A-200
C-100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:27:37