SQL使用具有重复记录的计数返回值

时间:2015-09-03 02:33:26

标签: sql

我有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字段更改为仅显示在同一时间有课程的人?

1 个答案:

答案 0 :(得分:0)

要显示所有在确切时间至少有一对班级的学生,请将having count(distinct class.meets) > 1更改为count(distinct class.meets) < count(class.meets),这要求学生有超过1个不同的课堂会议时间,这需要class.meets次中至少有一次是相同的。