你需要使用一個GROUP BY
子句組的行具有相同ID
和Var2
在一起,那麼AVG
函數計算平均值:
SELECT t.ID, t.Var2, AVG(t.Measure) AS Mean_Measure FROM YourTable t GROUP BY t.ID, t.Var2
我想補充一點GROUP BY
將改變查詢的輸出頗有幾分。它也增加了對輸出的一些限制。第一關 - 後,其中一個應用以下的基團由只能添加SELECT
子句中的表達式:
- 表達是
GROUP BY
子句
- 表達的一部分的聚集函數的應用
在上面的示例中,t.ID和t.Var2存在於GROUP BY
子句中,AVG(t.Measure)是t.Measure上的集合函數AVG的應用程序。
當WHERE
條款和GROUP BY
處理有也有一些要注意的事情:
WHERE
的GROUP BY
後應用,這通常意味着,表情不GROUP BY
不能WHERE
條款
- 如果您在使用希望過濾數據之前
GROUP BY
使用HAVING
而不是WHERE
我希望這是有道理的 - 關於GROUP BY
如何工作的更多更好的信息 - 我建議consulting the MySQL manual on the topic。
謝謝。不過,我想要每個變量2關於每個ID的方法。即:這將是一個用戶(id = 12,var2 = 31,mean_var2 = 7) – Salicorne
啊 - 對不起,我認爲ID是一個主鍵。見編輯的答案 – kastermester