1

我有一张记录玩家在游戏中得分的表格(例如表 1)。我正在尝试编写一个查询,该查询将计算每个玩家获得每个分数的次数(例如结果 1)。我可以轻松地为其中一个点值执行此操作:-

SELECT name, COUNT(*) AS 10s FROM points WHERE points = '10' GROUP BY name

但无法弄清楚如何包含所有三个点值。有可能吗,如果可以,有人可以帮助我吗?

非常感谢

朱尔斯

Table 1
+---------+-----+
| name | points |
| John | 10     |
| Pete | 5      |
| Anna | 10     |
| John | 10     |
| Pete | 0      |
| Anna | 5      |
| John | 5      |
| Pete | 5      |
| Anna | 0      |
+---------+-----+

Results 1
+------+-----+----+-----+
| name | 10s | 5s |  0s |
| John | 2   | 1  |  0  |
| Pete | 0   | 2  |  1  |
| Anna | 1   | 1  |  1  |
+------+-----+----+-----+
4

1 回答 1

2

您可以使用sum()累加您的条件true

SELECT name, 
       sum(points = 10) AS 10s,
       sum(points = 5) AS 5s,
       sum(points = 0) AS 0s
FROM points 
GROUP BY name
于 2013-10-19T14:05:11.533 回答