我有一张桌子,存储着每个球员的所有得分。我想取出最后3个(或更少)并显示平均值。
例:
TABLE log
time p_id score
---- ---- -----
12:00 0 10
14:23 0 25
14:25 1 30
16:27 0 70
17:00 0 80
Run Code Online (Sandbox Code Playgroud)
现在我想找到所有玩家最近3个条目的平均值...
结果:
p_id avg
---- ---
0 58
1 30
Run Code Online (Sandbox Code Playgroud)
我应该如何进行?
SELECT p_id, avg(score) as avg_score
FROM (
SELECT p_id, score FROM log ORDER BY time LIMIT 3
)
GROUP BY p_id
Run Code Online (Sandbox Code Playgroud)
应该可以。