SQL合并列并求和求助:按日期及指定类别汇总数据遇阻
解决方案
要实现同一日期下B类数据求和合并、A/C类保留原记录的需求,可以通过UNION ALL拆分处理后再合并结果:一部分提取A、C类的原始数据,另一部分对B类按日期+分类分组求和,最后统一排序。
假设数据表字段为date_col(日期)、category(分类)、value(数值),表名为your_table,对应的SQL语句如下:
-- 保留A、C类的原始数据 SELECT date_col, category, value FROM your_table WHERE category IN ('A', 'C') UNION ALL -- 对B类按日期分组求和 SELECT date_col, category, SUM(value) AS value FROM your_table WHERE category = 'B' GROUP BY date_col, category -- 按日期排序,保证结果顺序合理 ORDER BY date_col, category;
结果验证
代入你的测试数据执行后,会得到符合预期的输出:
11/16 C 10 11/16 B 14 11/17 A 7 11/17 A 18 11/17 B 10
(如果需要和示例中A类的顺序完全一致,可在ORDER BY中补充CASE WHEN category='A' THEN value ELSE 0 END来调整A类的内部排序)
内容的提问来源于stack exchange,提问作者Bethany G
相关产品推荐
相关产品推荐

