2017-09-14 150 views
0

我有一個表churchattendance,與monthId,GroupId,並且每個組都有一個district。當我執行select聲明來獲取該組中所有的district名稱時,它的工作原理。如何從具有平均函數的SQL select語句中返回多行?

這些地區的每個地區在某個月份應該有平均出席率(swschildren,mbsChildren等),所以我使用average函數。

當我在MySQL中試過這個時,我只得到一行,而不是所有地區的平均出勤率爲monthId。有一種方法可以用一條SQL語句來做到這一點嗎?

SELECT AVG(swsChildren) FROM churchattendance WHERE monthId=1 AND groupId=2 

2groupId裏面,我有兩個區 - 的12districtIds

+0

定義您說的「平均函數」的意思,還您使用的PHP或只是MySQL的? – Innervisions

+0

@Innervisions在關係數據庫領域,存在函數的概念。一個這樣的功能是平均的。如果這很難理解,那麼就沒有什麼可以做的了。 – Strawberry

+0

我正在使用MYSQL。 – Pianistprogrammer

回答

0

你需要組,爲AVG是聚合函數:

SELECT groupId, monthId, AVG(swsChildren) FROM churchattendance GROUP BY groupId, monthId 
+0

GROUP BY不能爲我工作,從我這裏使用mysql的dB,當我做一個SELECT * FROM churchattendance WHERE groupId = 2 AND monthId = 1我得到5個角色,3個角色districtId = 2和2個角色districtId = 3。我希望能夠將這3個和2個角色的平均值分開,但是合起來以便我有2個查詢結果 – Pianistprogrammer

+0

@Jerry如果您將所有需求放入問題本身,可能是數據樣本和預期結果,這將有所幫助。如果你想使用'AVG',那麼你必須使用'GROUP BY'。最終,您可能需要將更多列放入分組子句中,具體取決於您希望獲得的粒度。如果你想計算一些行的平均值,但是將它們保留在最終結果中,那麼你將自行加入或兩個單獨的問號,並將它們的結果組合到應用程序中(如果有的話)。 – michaJlS

+1

@michaJIS,謝謝,它有幫助。我最終學會了如何使用AVG的功能與組 – Pianistprogrammer