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