0
我有一個表:MySQL查詢去年2次嘗試的平均品位
quiz userid attempt grade
1 3 1 33
1 3 2 67
1 3 3 90
1 3 4 20
現在,我想最後的兩次嘗試,即,4和3,我想這2個年級的平均成績也就是90和20 任何人都可以幫助我嗎?
我有一個表:MySQL查詢去年2次嘗試的平均品位
quiz userid attempt grade
1 3 1 33
1 3 2 67
1 3 3 90
1 3 4 20
現在,我想最後的兩次嘗試,即,4和3,我想這2個年級的平均成績也就是90和20 任何人都可以幫助我嗎?
使用ORDER
和LIMIT
拿到2次最後的嘗試和AVG aggregation function:
SELECT AVG(grade) AS average FROM (
SELECT grade FROM table
WHERE userid = 3
ORDER BY attempt DESC LIMIT 2) AS t
如果要單獨列出兩個測試結果,平均每行中,那麼這樣的事情,也許(否則你只需要在子查詢頻率最高的測試)。
SELECT userid, attempt, grade,
(SELECT AVG(grade)
FROM table
ORDER BY attempt DESC LIMIT 0, 2) AS avg_grade
FROM table
ORDER BY attempt DESC LIMIT 0, 2;
嗨尼克rulez,您的查詢提供了一個錯誤「#1054 - 未知列‘平均’在‘字段列表’可能是什麼錯誤 – user1067018 2011-12-17 09:58:33
Sorr年。錯字。糾正。 – 2011-12-17 13:42:56