表:
a | b
1 | 15
2 | 10
3 | 20
4 | 30
查询:
SELECT AVG(table.b) FROM table ORDER BY table.a ASC LIMIT 3
将返回18.75而不是预期的15。
如何更改查询以获取预期结果(有限行数的AVG
值)?
答案 0 :(得分:3)
您需要使用子查询:
SELECT AVG(b)
FROM (SELECT b
FROM table
ORDER BY table.a ASC
LIMIT 3) sub
修改强>
没有子查询,执行顺序如下:
使用子查询执行的顺序如下:
更多信息:Logical query processing(TOP / OFFSET FETCH与LIMIT相同)。
答案 1 :(得分:1)