sql分组查询后对数据进行合并?
问题描述:
有如下两张表:
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 个答案:
SELECT CASE WHEN `name` IN ('A区', 'B区') THEN 'A区+B区' ELSE `name` END AS `name`, SUM(count) as count FROM ( SELECT area.`name` as `name`, SUM(a.count) as count FROM sys_count a LEFT JOIN sys_area area ON a.areaid = area.id GROUP BY area.`name` ) as subquery GROUP BY `name`
阅读了下文档,我如果只是想增加项目的灵活度多人分目录开发,这样用不到蓝图的 url 绑定和视图绑定,那蓝图是不是就失去了意义