我有4张桌子,我正在尝试返回所有注册两个班级并且课程同时开会的学生的姓名。
select student.sname, count(erolled.snum) as TotalClassesEnrolledIn, count(distinct class.meets) as MostClassesAtOneTime from student
inner join erolled on erolled.snum=student.snum
inner join class on class.cname=erolled.cname
group by student.sname
having count(erolled.snum) > 1 and count(Distinct class.meets) > 1
它返回学生姓名和他们正在学习的课程数量,但是它仅列出没有冲突课程时间的学生。
有没有办法可以将Count字段更改为仅显示在同一时间有课程的人?
答案 0 :(得分:0)
要显示所有在确切时间至少有一对班级的学生,请将having count(distinct class.meets) > 1
更改为count(distinct class.meets) < count(class.meets)
,这要求学生有超过1个不同的课堂会议时间,这需要class.meets
次中至少有一次是相同的。