我怎样才能找到某个建筑物中男性和女性的百分比?

时间:2011-11-25 14:20:38

标签: mysql statistics

表:

- Activities: id, userId, description, buildingId
- Buildings: id, name
- User: id, name, gender

用户可以创建活动,例如:“检查邮件”将是一项活动,buildingid链接到正在进行证书活动的建筑物。

我需要的是一个查询,根据此类建筑物的活动量,每个建筑物的男性/女性%。

例如:

User: 1, mike
Building: 1, main hall

Activities:

id: 1
userId: 1 (mike)
description: "checking mail"
buildingId: 1 (main hall)

id: 2
userId: 1 (mike)
description: "getting coffee"
buildingId: 1 (main hall)

所以我想得到1号楼(大厅)的女性/男性%,我该怎样才能做到最好?

1 个答案:

答案 0 :(得分:2)

SELECT buildingId, 
  (SUM(CASE WHEN `User`.gender='male' THEN 1 ELSE 0 END)/
  COUNT(*))*100 as male_percent
FROM Activities JOIN `User` ON Activities.userID=`User`.id 
GROUP BY `Activities`.buildingId

或者如果您更喜欢比率:

SELECT buildingId, 
  SUM(CASE WHEN `User`.gender='male' THEN 1 ELSE 0 END)/
  SUM(CASE WHEN `User`.gender='female' THEN 1 ELSE 0 END) as ratio
FROM Activities JOIN `User` ON Activities.userID=`User`.id 
GROUP BY `Activities`.buildingId