mysql - SQL 对多个字段的计数

标签 mysql sql count

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

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

用户

  • 大学编号
  • 性别

我想要实现的输出如下

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

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

提前谢谢你。

菲尔

最佳答案

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

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

关于mysql - SQL 对多个字段的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056100/

相关文章:

php - PDO 意外抛出具有多个绑定(bind)参数的绑定(bind)变量错误

具有 3 个表的左连接、计数和分组的 MySQL 查询

mysql - 如何使用 MySQL OUTFILE 从表中获取所有行

MySql根据另一个表中的MAX值选择一个表中的所有行

sql - 为数据表中的每一行选择 COUNT(foreign ID)

php - 如何从MySql中删除重复用户但保存原始用户

mysql - MySQL 中的 JSON_REMOVE 对象

php - 选择开始日期和结束日期后,对 sql 中的所有行求和

python - 检查值是否比列表中的 X 更频繁地存在的最快方法

javascript - Countdown.js 重置时间