我有这种格式的表格
id| name | types |
_________________
1 sachin 100
2 virat 50
3 sachin 50
4 sachin 50
5 sachin 200
6 virat 100
7 virat 200
我想得到的结果现在是
name | num of 50 |num of 100 |num of 200
sachin | 2 | 1 | 1
virat | 1 | 1 | 1
到达这里的正确方法是什么? 我尝试过使用group by。但我没有到达那里
任何帮助?
由于
答案 0 :(得分:3)
此外,您可以依赖MySQL
布尔表达式。
SELECT
name,
SUM(types = 50) as num_50,
SUM(types = 100) as num_100,
SUM(types = 200) as num_200
FROM yourtable
GROUP BY name
注意:
由于MySQL布尔表达式解析为0/1
,因此您可以在SUM()
SUM(a=b) returns 1 only if a is equal to b
更多强>
如果您使用@ JPG答案中提到的COUNT
,请记住以下COUNT
关于COUNT
的一些细微之处:
SELECT COUNT(0); Result: 1
SELECT COUNT(-1); Result: 1
SELECT COUNT(NULL); Result: 0
SELECT COUNT(71); Result: 1
答案 1 :(得分:2)