如何在MySQL中为每个玩家获得半个世纪,几个世纪和几百个数字

时间:2016-08-09 06:26:34

标签: mysql group-by

我有这种格式的表格

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。但我没有到达那里

任何帮助?

由于

2 个答案:

答案 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

Working demo

更多

如果您使用@ JPG答案中提到的COUNT,请记住以下COUNT

的细微之处

关于COUNT的一些细微之处:

SELECT COUNT(0);   Result: 1

SELECT COUNT(-1);  Result: 1

SELECT COUNT(NULL); Result: 0

SELECT COUNT(71); Result: 1

SQL FIDDLE

答案 1 :(得分:2)

如果您只有这些类型,可以试试这个:

BuildConfig

Demo Here