我有这种格式的表格
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
到达这里的正确方法是什么?? 我尝试使用分组依据。但是我没有到那里
有什么帮助吗?
谢谢
最佳答案
您还可以依赖 MySQL
bool 表达式。
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 bool 表达式解析为 0/1
,因此您可以在 SUM()
中使用它
SUM(a=b) 仅当 a 等于 b 时返回 1
更多:
如果您使用@JPG 的回答中提到的 COUNT
,请记住 COUNT
的以下微妙之处
关于 COUNT
的一些微妙之处:
SELECT COUNT(0); Result: 1
SELECT COUNT(-1); Result: 1
SELECT COUNT(NULL); Result: 0
SELECT COUNT(71); Result: 1
关于mysql - 如何在 MySQL 中获取每个玩家的半个世纪、世纪和双百的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38843548/