2013-01-23 34 views
5

私はすべての値の平均に最も近い値を得るためのクエリを探しています。 たとえば、 私は列Aに値1,2,を持っています。平均は3.667です。だから私はそれが平均値に最も近いので、2を返すクエリをしたい。私のDBで実際に平均値に最も近いSQL

+0

私は2 columns-の幅と高さを持っています。平均正方形サイズを計算するよりも、正方形サイズを計算しています。幅と高さを取得したいと考えています。これは、その正方形のサイズがこの平均値に最も近い値です。 どうすればいいですか? –

+3

なぜ非常に多くのアップホー?この質問は絶対に何の努力もしていない。 – Kermit

+0

どのタイプのSQL? – dnagirl

答えて

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 Fiddle

2
SELECT number, ABS(number - (SELECT AVG(number) FROM numberTable)) AS deviation 
FROM numberTable 
ORDER BY deviation ASC 
LIMIT 1; 
+0

+1うまくやった。 – Art

0
SELECT MAX(A) 
FROM myTable 
WHERE A < (SELECT AVG(A) AS averageA FROM myTable) 
+0

-1:数字の場合(1,5,8)を考えます。平均= 4.67、最も近い数値は1でなく5です。 – SparKot

+0

@SparKot:OPがこの例を示していれば、私はdiffを考え出すことができました。回答。 – shahkalpesh