2009-12-06 44 views
24

我想要得到最低的5個價格物品的平均值,按照附加的用戶名分組。但是,下面的查詢給出了每個用戶的平均價格(當然這是價格),但我只想返回一個答案。從MySQL表中選擇平均值與極限

SELECT AVG(price) 
    FROM table 
WHERE price > '0' && item_id = '$id' 
GROUP BY username 
ORDER BY price ASC 
    LIMIT 5 
+1

我不明白你想要做什麼。你能給出一個示例表結構,一些示例數據和該數據的預期結果嗎? – 2009-12-06 04:45:32

回答

55

我覺得這是你追求的:

SELECT AVG(items.price) 
    FROM (SELECT t.price 
      FROM TABLE t 
     WHERE t.price > '0' 
      AND t.item_id = '$id' 
     ORDER BY t.price 
     LIMIT 5) items 

它將返回5種最低價格的平均 - 一個答案。

+3

+1很好的答案。並祝賀達到10k代表! – 2009-12-06 04:54:13

+1

很好的答案! – 2014-07-06 23:10:23

+3

祝賀達到160K +代表! – 2015-05-11 19:52:58

0

簡單的解決方案如下。

查詢:

SELECT AVG(Column_name) 
FROM (SELECT Column_name 
FROM Table 
WHERE ColumnID < number[Limit you want])