2017-09-14 156 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