我有桌子:
Country:
id | name | group| type
1 | USA | 1 | 0
2 | Germany | 2 | 1
3 | France | 2 | 0
4 | China | 1 | 1
5 | Japan | 3 | 0
6 | Italy | 1 | 1
7 | Mexico | 1 | 0
8 | Columbia | 3 | 0
9 | Taiwan | 2 | 1
...
现在,我希望接收“类型”字段为正的百分比,并按“组”字段进行分组。
因此结果应类似于:
group| percentage
1 | 50% -- 0 + 1 + 1 + 0 = 2/4 = 50%
2 | 66% -- 1 + 0 + 1 = 2/3 = 66%
3 | 0% -- 0 + 0 = 0/2 = 0%
最佳方法是什么?一个查询有可能吗?我是MySQL的新手,我不知道。我只能:
SELECT group, (????) as percentage FROM country GROUP BY group;
答案 0 :(得分:1)
答案 1 :(得分:0)
如果列类型仅具有值0和1:
SELECT
`group`,
round(100.0 * sum(type) / count(*), 0) as percentage
FROM country
GROUP BY `group`;
请参见demo。
结果:
| group | percentage |
| ----- | ---------- |
| 1 | 50 |
| 2 | 67 |
| 3 | 0 |