开发者社区 问答 正文

请问下面这个sql 有关分组聚合问题要怎么解决?

请教 sql 有关分组聚合问题
正文:

CREATE TABLE student (

name VARCHAR (36) NOT NULL,
grade int2 NOT NULL,
gender int2 NOT NULL
)

上面是学生表,现在需求是:筛选出所有男生数量大于 50,女生数量小于 60 的所有年级,以及年级的男女学生数量,还有需要分页和男女数量排序

展开
收起
OSC开源社区 2024-05-31 17:18:47 45 分享 版权
1 条回答
写回答
取消 提交回答
  • 可以使用下面的代码方式进行解决:

    SELECT
        SUM(CASE WHEN gender = TRUE THEN 1 ELSE 0 END) AS boy_count,
        SUM(CASE WHEN gender = FALSE THEN 1 ELSE 0 END) AS girl_count,
        grade
    FROM
        student
    GROUP BY
        grade
    HAVING
        SUM(CASE WHEN gender = TRUE THEN 1 ELSE 0 END) > 50 OR
        SUM(CASE WHEN gender = FALSE THEN 1 ELSE 0 END) < 60;
    
    2024-06-05 18:59:27
    赞同 展开评论
问答分类:
SQL
问答地址: