2011-09-28 89 views
1

如果我有一個包含兩列的表 - value和time_stamp - 如何使用SQL來獲取最後X值的平均值?如何獲得最後X值的平均值?

一個或幾個聲明,沒關係。

也許類似於SELECT value FROM table ORDER BY time_stamp DESC LIMIT x?然後在我的程序中,我可以得到每個值,總計它們並平均它們?就我的SQL n00b而言,這是我最好的猜測。

我知道SQL可以合計/平均水平,但我不確定如何在結合了將其應用到最新的X值的請求......

預先感謝任何幫助。


注給任何人seekign做到這一點:除了最後的X值接受的答案,我也通過google搜索,很容易的時間做,例如一分鐘或一小時找到,通過使用類似的東西SELECT AVG(somefield) FROM sometable WHERE datefield BETWEEN '2003-08-10' AND '2003-08-26

回答

3

您使用AVG()聚合對子選擇的結果進行初始化LIMIT。請確保在內部查詢上替換n的正確LIMIT值。

SELECT AVG(a.value) AS the_average 
FROM (SELECT value FROM tbl ORDER BY time_stamp DESC LIMIT n) a; 
+1

+1(以及6分鐘內答案,當我可以獎勵它)。謝謝! – Mawg

+0

errm,我只注意到最後的'a' - 它在做什麼? – Mawg

+1

@Mawg子查詢派生表必須有一個別名。 'a'只是一個簡單的別名來滿足這個要求 - 如果沒有它,查詢就不會編譯。 –