我有一个表
id | playerID | score
1 | 1 | 100
2 | 1 | 155
3 | 5 | 132
等等。。
我想做的是获得每个唯一playerID的平均"分数"。我可以获得DISTINCT播放器ID
SELECT DISTINCT
playerID
FROM
dbo.scores
我可以得到所有分数的平均值,
SELECT
AVG(score)
FROM
dbo.scores
但我似乎不知道如何将两者结合起来。
使用group by
!
SELECT playerID, AVG(score) AS avg_score
FROM dbo.scores
GROUP BY playerID
dbo
的使用表明您使用的是SQL Server。SQL Server执行整数值的整数平均值,因此0
和1
的平均值是0
,而不是0.5
。
我建议:
SELECT s.playerID, AVG(10. * s.score) AS avg_score
FROM dbo.scores s
GROUP BY s.playerID