我有一個MySQL表,有三列ID,名稱和高度。MySQL的問題在獲得列的平均值
我想運行查詢以返回所有條目的名稱和高度以及所有條目的平均高度。所有這些都必須在單個查詢中完成。
這就是我試過的。
SELECT name, height, avg(height) as average_height FROM mytable
該查詢只返回一行,但平均高度是正確的。
name height average_height
--------------------------------
Harry 165 169.5
然後,我嘗試此查詢
SELECT name, height, avg(height) as average_height FROM mytable GROUP BY name
然後返回所有行,但平均不正確
name height average_height
--------------------------------
Harry 165 165
Tom 170 170
George 180 180
Raj 163 163
我怎樣才能獲得平均以及所有的單個查詢中的行。
這是兩個不同的功能(聚集和列表)充其量你可以聯合兩個單獨的查詢和黑客的平均值作爲第一個/最後一排,但因爲你是無論如何查找所有的信息,爲什麼不計算MySQL以外的平均值? – Rudu
@Rudu,通過連接或子查詢來產生所需的結果並不難,正如幾個答案所顯示的那樣。從技術的角度來看,這不成問題。雖然目前還不清楚OP爲什麼要這樣做,但有很多情況下這樣的操作是有道理的。例如,如果您想要一個列出相對於平均值的人物高度的列,則需要將每個行的平均高度加入。 – 2013-01-18 08:36:24