多个字段的SQL计数

时间:2014-09-26 09:17:44

标签: mysql sql count

我甚至不确定这是否可行,或者我是否只需要编写多个查询。

我有一个数据库表如下: -

USER

  • university_id
  • 性别

我希望实现的输出如下

| Uni  | Total Users | Male | Female
| Uni1 | 30          | 15   | 15
| Uni2 | 40          | 25   | 15

如果您能在单个查询中实现这一点,或者我是否应该对每个结果使用不同的查询,我将不胜感激。

提前谢谢。

Phill

1 个答案:

答案 0 :(得分:3)

以下是如何在单个查询中执行此操作的方法:

select
  UniversityId,
  count(*) as `Total Users`,
  sum(case when gender = 'male' then 1 else 0 end) as Male,
  sum(case when gender = 'female' then 1 else 0 end) as Female
from User
group by UniversityId

演示:http://www.sqlfiddle.com/#!2/e7d16a/4