Sql 如何从Oracle检索一组特殊的数据
我有一个课程表,里面有学生的课程。桌子的每一行是一道菜。 各栏分别为:Sql 如何从Oracle检索一组特殊的数据,sql,oracle,select,Sql,Oracle,Select,我有一个课程表,里面有学生的课程。桌子的每一行是一道菜。 各栏分别为: student id, course, term 我想看看有多少学生在x学期选修了课程1和(课程2或课程3)以及课程4 如何编写SQL语句来执行查询?您可以使用一个处理2和3相同的case表达式,然后计算每个学生的不同课程数: SELECT student_id FROM courses WHERE course >= 1 AND course <= 4 GROUP BY student_id
student id, course, term
我想看看有多少学生在x学期选修了课程1和(课程2或课程3)以及课程4
如何编写SQL语句来执行查询?您可以使用一个处理2和3相同的
case
表达式,然后计算每个学生的不同课程数:
SELECT student_id
FROM courses
WHERE course >= 1 AND course <= 4
GROUP BY student_id
HAVING COUNT (DISTINCT CASE course WHEN 2 THEN 3 ELSE course END) = 3
选择学生id
从球场
课程>=1和课程我想你在你的课程中进入了关于分组的章节?我无法决定是否应该回答这个问题,希望OP随后会通过期末考试,或者拒绝回答,因为这显然是OP自己应该弄清楚的家庭作业。(学生注意-涉及课程
或学生
的问题或表明问题学术来源的其他表格初步被认为是家庭作业。正如您所知……)。最后,我想我会发表这篇评论。。。(叹气)干得好。HAVING
子句中的CASE
表达式非常好。我很惭愧我没有想到这样的事情。:-)非常感谢。我要试一试!