2013-01-23 70 views
5

Tôi đang tìm một truy vấn để có được giá trị gần nhất tồn tại đến mức trung bình của tất cả các giá trị. Ví dụ: , Tôi có trong cột A các giá trị - 1, 2, 8 Giá trị trung bình là 3,667. Vì vậy, tôi muốn truy vấn trả về 2 vì nó là gần nhất với giá trị trung bình.gần nhất với giá trị trung bình SQL

+0

Trên thực tế trong DB của tôi tôi có 2 columns- Width và Height. Tôi tính toán kích thước hình vuông, so với tính toán kích thước hình vuông trung bình. và tôi muốn lấy Chiều rộng và Chiều cao, kích thước hình vuông của chúng gần nhất với mức trung bình này. Tôi có thể làm như thế nào? –

+3

Tại sao có quá nhiều upvotes? Câu hỏi này cho thấy hoàn toàn không có nỗ lực. – Kermit

+0

loại SQL nào? – dnagirl

Trả lời

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 Được thực hiện tốt. – Art

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

-1: Xem xét trường hợp có số (1, 5, 8). Trung bình = 4,67 và số gần nhất là 5, không phải là 1. – SparKot

+0

@SparKot: Nếu OP sẽ hiển thị ví dụ này, tôi có thể đã tìm ra điểm khác biệt. câu trả lời. – shahkalpesh

Các vấn đề liên quan