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

MySQL合并两张相同表后GROUP BY失效问题求助

解决方法

你的问题出在先分别统计再合并,而非先合并原始数据再统一统计。原SQL里的GROUP BY仅作用于第二张表的查询,两张表的统计结果只是被简单拼接,自然无法得到合并后的汇总值。

正确的SQL写法是先合并两张表中符合条件的原始数据,再对合并后的数据集按type分组统计:

SELECT 
    type,
    COUNT(id) AS number,
    SUM(amount) AS total
FROM (
    -- 合并两张表的原始数据(仅保留统计需要的字段)
    SELECT type, id, amount
    FROM subscription
    WHERE DATE(timestamp) = '2022-10-18'
    UNION ALL
    SELECT type, id, amount
    FROM archive_subscription
    WHERE DATE(timestamp) = '2022-10-18'
) AS combined_data
GROUP BY type;

补充说明

  • 原SQL中BETWEEN '2022-10-18' AND '2022-10-18'等价于DATE(timestamp) = '2022-10-18',后者写法更简洁直观。
  • UNION ALL会保留所有重复记录,适合合并同结构的原始数据,不会丢失任何需要统计的条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:05:25