2
我有一張表,用於存儲每個玩家的每個分數。我想取出最後3個(或更少)並顯示平均值。查找每個人的最後X條記錄的平均數
例子:
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
現在我想找到所有選手的最後3項的平均...
結果:
p_id avg
---- ---
0 58
1 30
我應該如何進行?
我已經嘗試了一些東西,並沒有得到任何好處。在做這件事情時,我注意到MySQL發出了一些令人擔憂的事情......'SELECT COUNT(*)FROM log LIMIT 3;'產生5的答案。當然,這不可能是正確的嗎?看來聚合忽略了LIMIT子句,所以'SELECT AVG(score)FROM log WHERE p_id = 0 ORDER BY time DESC LIMIT 3;'產生的平均值爲46.25而不是我所期望的58.333。 – 2010-08-13 13:06:49
添加到Brian Hooper的commetns中,可能需要加入一個子查詢,該子查詢返回最後3行,然後對該結果使用聚合函數 – 2010-08-13 15:11:00