有可能SUM或AVG前十名的结果?我有几千个值列表.我想知道前10个值的平均值.我试过这个:
SELECT AVG(some_val)
FROM table
ORDER BY some_val DESC
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
但这给了我表中整个值列表的平均值,而不仅仅是前10个.
我正在使用MySQL.我想把它写成一个SQL语句.
您需要选择前10排第一,然后取它们的平均值.
SELECT AVG(some_val)
FROM (SELECT * FROM table ORDER BY some_val DESC LIMIT 10) t;
Run Code Online (Sandbox Code Playgroud)
否则,您选择所有行的平均值,然后返回最多10个结果(因为LIMIT适用于最后).正如您可能发现的那样,您只返回一行(平均值),LIMIT无效.