You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用LEFT OUTER JOIN统计未选课学生人数并按性别分组

实现步骤及SQL代码

核心逻辑说明

你需要的统计可以通过三步实现:

  • 用LEFT OUTER JOIN关联学生表和选课表,保留所有学生记录,未选课学生对应的选课表字段会返回NULL
  • 通过判断选课表ID是否为NULL筛选出未选课的学生,用SUM()累加计数
  • 按性别字段分组得到各性别的未选课人数

完整可运行SQL

SELECT 
  s.Gender,
  SUM(CASE WHEN l.ID IS NULL THEN 1 ELSE 0 END) AS total
FROM Student s
LEFT OUTER JOIN Lessons l ON s.ID = l.ID
GROUP BY s.Gender;

补充说明

如果你的数据库对英文字符大小写敏感,导致Boy和boy被分为两个不同分组,可以统一大小写后再分组,示例调整如下:

SELECT 
  -- 统一为首字母大写其余小写的格式,可根据需要自行调整
  CONCAT(UPPER(LEFT(s.Gender, 1)), LOWER(RIGHT(s.Gender, LENGTH(s.Gender)-1))) AS Gender,
  SUM(CASE WHEN l.ID IS NULL THEN 1 ELSE 0 END) AS total
FROM Student s
LEFT OUTER JOIN Lessons l ON s.ID = l.ID
GROUP BY CONCAT(UPPER(LEFT(s.Gender, 1)), LOWER(RIGHT(s.Gender, LENGTH(s.Gender)-1)));

运行后即可得到你需要的统计结果:

Gendertotal
Boy2
Girl1

内容的提问来源于stack exchange,提问作者blue emperor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:33:03