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

SQL查询实现:根据指定科目列表筛选修完所有对应科目的学生

SQL 实现方案

针对筛选同时修完全部指定科目的学生的需求,可以用分组+聚合判断的方式实现,兼容绝大多数主流数据库:


需求1:查询同时修读Maths、Science、Language1三门科目的学生

SELECT Student
FROM Student_subject
WHERE Subject IN ('Maths', 'Science', 'Language1')
GROUP BY Student
-- 符合条件的科目数等于指定科目总数,说明所有科目都已修读
HAVING COUNT(DISTINCT Subject) = 3;

执行后会返回预期结果:Rohan、RAJ。
注:如果你的表不存在同一个学生同一科目重复录入的情况,可以去掉COUNT里的DISTINCT,执行性能更好


需求2:查询同时修读Maths、Science两门科目的学生

SELECT Student
FROM Student_subject
WHERE Subject IN ('Maths', 'Science')
GROUP BY Student
HAVING COUNT(DISTINCT Subject) = 2;

执行后返回结果为Rohan、RAJ,不会包含仅修了Maths的SAM。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:45:06