我有两个表要查询,注册和课程。在课程表中,每门课程只有一个条目,但在注册表中,任何课程的每个注册学生都有一个条目,因此一门课程可能有30个条目。我的任务是找到注册人数最多的课程,并打印出该课程的名称以及该课程的注册人数。这是我到目前为止的问题
select c.CourseCode ,(SELECT count( * ) FROM Enrollment WHERE CourseCode = c.CourseCode) as test from Course c ;
这给了我结果:
CS227-29号
CS228-34号
CS309-31号
CS311-25号
,ect,这很好,但是现在,我如何只打印出注册人数最多的类(在本例中是CS228)。我试过使用max(),但什么也做不到。
这是桌子的结构
创建表课程(
课程代码字符(50),
课程名称字符(50),
PreReq字符(6));
创建表注册(
CourseCode char(6)不为空,
段no int不为空,
StudentID char(9)不为空引用Student,
等级字符(4)不为空,
主键(CourseCode、StudentID),
提供外键(CourseCode,SectionNo)参考资料;
最佳答案
点完点菜后取前1个。
即:
Select Top 1 A.CourseCode, Count(*) From Course A inner join Enrollment B on (A.CourseCode=B.CourseCode)
Group By A.CourseCode
Order By Count(*) DESC
另外-使用我在这里展示的内部连接,而不是子查询。我确实喜欢子查询,这个可以工作,但它不适合这种查询!