我正在尝试将字段“黄色和蓝色”组合起来,并将其重命名为“绿色”。然后显示每个颜色类别中的风扇数量-绿色红色白色。
来自数据库“房屋”的样本
|fan_id| Color|
---------------
1 Yellow
2 Red
3 Blue
4 White
5 Blue
6 Yellow
预期结果:
|fan.id| Color|
---------------
4 Green
1 Red
1 White
这是我关于这个问题的代码;但是,由于我看到从结果中弹出“ 0”,因此它似乎仍在“蓝色”和“黄色”列上保持标签。我不确定如何获得预期结果的输出。
SELECT COUNT(fan.id) AS Total,
SUM(case when Color = "Yellow" OR Color = "Blue" then 1 else 0 end) as Green,
SUM(case when Color = "Red" then 1 else 0 end),
SUM(case when Color = "White" then 1 else 0 end)
FROM House
GROUP BY Color;
输出:
'''
|Total|Green|Red|White
------------------------
2 | 2 | 0| 0
1 | 0 | 1| 0
2 | 2 | 0| 0
1 | 0 | 0| 1
您似乎想要简单的聚合:
select color, count(*)
from house
where color in ('Green', 'Red', 'White')
group by color