当前位置: 首页 > 知识库问答 >
问题:

sql分组查询后对数据进行合并?

南门宇
2023-07-04

有如下两张表:

1、区域表

CREATE TABLE `sys_area` (
  `id` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL COMMENT '区域名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2、数量表

CREATE TABLE `sys_count` (
  `id` int(11) NOT NULL,
  `areaid` int(11) DEFAULT NULL COMMENT '区域id',
  `count` int(11) DEFAULT NULL COMMENT '数量',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

根据区域统计数量表获取每个区的数量

SELECT area.`name`, sum(a.count) as count 
FROM sys_count a
LEFT JOIN sys_area area ON a.areaid = area.id
GROUP BY areaid

获得结果如下:

count name
28 A区
18 B区
19 C区
26 D区

问题:现在需要将A和B区的数据合并起来算作A区的数据

期望的是:

count name
46 A区+B区
19 C区
26 D区

SQL应该如何调整

共有1个答案

骆磊
2023-07-04
SELECT 
    CASE 
        WHEN area.`name` IN ('A区', 'B区') THEN 'A区+B区'
        ELSE area.`name`
    END AS `name`, 
    SUM(a.count) as count 
FROM sys_count a
LEFT JOIN sys_area area ON a.areaid = area.id
GROUP BY `name`
 类似资料:
  • 问题内容: 我有一个这样的表: 我想将连续序列号分组为一行,如下所示: 请帮助实现此结果。 问题答案:

  • 问题内容: 我以前从未将golang与mysql一起使用,因此我是 第一次阅读这些内容。我想做这样的事情: 这种输入太多了,尤其是当我想 将更多变量添加到WHERE条件中时。 如果这是PHP,我将执行以下操作: 通过使用foreach循环,我可以动态生成查询并根据需要动态绑定尽可能多的变量。 像golang和mysql这样的选项吗?还是有其他选择不对查询输入每个变量组合? 问题答案: 如果您的地图

  • 问题内容: 我有大约700万行,其中有60列以上。数据超出了我的内存容量。我正在基于列“ A”的值将数据聚合到组中。熊猫拆分/汇总/合并的文档假定我已经将所有数据都存储在了,但是我无法将整个商店读取到内存中。在分组数据的正确方法是什么? 问题答案: 这是一个完整的例子。 输出量 一些警告: 1)如果您的组密度相对较低,则此方法很有意义。大约数百或数千个组。如果获得的收益更多,则效率更高(但方法更复

  • 问题内容: 我有一个监视系统,它每n秒收集一次数据(n大约为10,但有所不同)。我想每隔15分钟汇总一次收集的数据。有没有一种方法可以将时间戳记值合并为15分钟的块,以便分组工作? 问题答案:

  • 本文向大家介绍Sequelize中用group by进行分组聚合查询,包括了Sequelize中用group by进行分组聚合查询的使用技巧和注意事项,需要的朋友参考一下 一、SQL与Sequelize中的分组查询 1.1 SQL中的分组查询 SQL查询中,通GROUP BY语名实现分组查询。GROUP BY子句要和聚合函数配合使用才能完成分组查询,在SELECT查询的字段中,如果没有使用聚合函数

  • 为了给出backfround,我使用