5

我正在寻找一个查询来获取与所有值的平均值最接近的值。例如,我在 A 列中有值 - 1 , 2, 8 平均值为 3.667 。所以我希望查询返回 2,因为它最接近平均值。

4

3 回答 3

8
SELECT TOP 1 myTable.*
FROM myTable
CROSS JOIN (SELECT AVG(A) AS averageA FROM myTable) AS averageA
ORDER BY ABS(averageA.averageA - myTable.A)

SQL小提琴

于 2013-01-23T18:14:11.590 回答
2
SELECT number, ABS(number - (SELECT AVG(number) FROM numberTable)) AS deviation 
FROM numberTable 
ORDER BY deviation ASC 
LIMIT 1;
于 2013-01-23T18:38:50.030 回答
0
SELECT MAX(A)
FROM myTable
WHERE A < (SELECT AVG(A) AS averageA FROM myTable)
于 2013-01-23T18:43:39.237 回答