MySQL查询:如何将多列SUM结果按类别展示在同一列?
MySQL 按颜色统计总数量的查询方案
问题背景
现有数据表结构及数据如下:
| ID | Name | Color | Red_Count | Blue_Count |
|---|---|---|---|---|
| 1 | 比尔 | Red | 2 | 0 |
| 2 | 约翰 | Blue | 0 | 7 |
| 3 | 山姆 | Both | 5 | 2 |
| 4 | 汤姆 | Both | 3 | 6 |
需要生成按Red和Blue分类的总数量统计,结果格式如下:
| Color | Total_Count |
|---|---|
| Red | 10 |
| Blue | 15 |
解决方案
可以使用UNION ALL将两个独立的统计查询结果合并,实现需求:
-- 替换 your_table_name 为实际表名 SELECT 'Red' AS Color, SUM(Red_Count) AS Total_Count FROM your_table_name UNION ALL SELECT 'Blue' AS Color, SUM(Blue_Count) AS Total_Count FROM your_table_name;
逻辑说明
- 第一个查询:统计表中所有行的
Red_Count总和,并指定Color列值为Red - 第二个查询:统计表中所有行的
Blue_Count总和,并指定Color列值为Blue - 通过
UNION ALL将两个结果集合并,得到目标格式的统计数据
内容的提问来源于stack exchange,提问作者user20419861
相关产品推荐
相关产品推荐

