MySQL GROUP BY 没有给出期望的结果

标签 mysql sql

我必须将摘要显示为每个单元中的男性人数、女性人数。尝试了以下查询:

SELECT 
    unit,
    CASE gender
        WHEN 'Male' THEN COUNT(id)
    END AS 'male',
    CASE
        WHEN gender = 'Female' THEN COUNT(id)
    END AS 'female'
FROM
    admission_info
WHERE
    admission_date = '2017-04-15'
GROUP BY gender

这是 Fiddle显示输出。但我希望它在 1 行中显示单位名称、男性人数、女性人数。

最佳答案

SELECT unit, 
sum(CASE gender WHEN 'Male' THEN 1 else 0 END) AS 'male', 
sum(CASE WHEN gender='Female' THEN 1 else 0 END) AS 'female' 
FROM admission_info WHERE admission_date='2017-04-15'
group by unit

关于MySQL GROUP BY 没有给出期望的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43422280/

相关文章:

php - 返回用户 MySQL 关注的人的所有帖子

php - 使用 PHP 和 Ajax 进行 MySQL 查询

php - 检查字符串是否为逗号分隔的数字列表

mysql - Snow Leopard下的Macports mysql5设置

mysql - 查询多个表的公共(public)字段,然后按 1 个公共(public)字段排序

mysql - 仅当存在于 sql 中时才删除列

php - 在mysql查询中设置多个order by

java - ODATA 支持使用 java 和 mysql 的 JSON 数据

sql - 在 SQL Server 的分区表中搜索日期

sql - 面向对象的程序员如何了解数据库驱动的编程?