2013-01-23 14 views
5

मैं सभी मूल्यों के औसत के निकटतम मूल्य प्राप्त करने के लिए एक प्रश्न की तलाश में हूं। उदाहरण के लिए , मेरे पास कॉलम ए में मान हैं - 1, 2, 8 औसत 3.667 है। तो मैं चाहता हूं कि क्वेरी 2 लौट जाए क्योंकि यह औसत मूल्य के सबसे नज़दीक है।औसत मूल्य के निकटतम SQL

+0

असल में मेरी DB में मैं चौड़ाई और ऊंचाई columns- 2 की है। मैं औसत वर्ग आकार की गणना करने के बजाय, वर्ग आकार की गणना कर रहा हूं। और मैं चौड़ाई और ऊंचाई प्राप्त करना चाहता हूं, जो उनके वर्ग का आकार इस औसत के सबसे करीब है। मैं इसे कैसे कर सकता हूं? –

+3

इतने सारे अपवॉट क्यों? यह सवाल बिल्कुल कोई प्रयास नहीं दिखाता है। – Kermit

+0

किस प्रकार का एसक्यूएल? – 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 और निकटतम संख्या 5 है, नहीं 1. – SparKot

+0

@SparKot: यदि ओपी इस उदाहरण को दिखाता, तो मैं एक diff के साथ आ सकता था। जवाब। – shahkalpesh

संबंधित मुद्दे