我在InstructorNo和CourseNo上把元组组合成一个关系,如果他们能教的话,老师在元组里有一门课程。我想选择的讲师,可以教相同数量的课程,在名单上的讲师,可以教授最多的课程。
例如,如果Mr.Smith能在所有的老师中教授最多的课程,我想选择Mr.Smith和其他能教同样数量的课程的人。
我真正想做的是这样的事情:
select InstructorNo, COUNT(InstCourses.CourseNo) as NoTeachableCourses from ... group by InstructorNo having COUNT(InstCourses.CourseNo) = MAX(COUNT(InstCourses.CourseNo))
但这是非法的,因为嵌套聚合MAX(COUNT...。如何在不嵌套聚合器的情况下获得此功能?我不确定在给定的查询中需要选择多少名教师,所以我不确定TOP或TOP WITH TIES是否有效。
发布于 2015-10-23 03:15:57
使用TOP或TOP WITH TIES
select top(1) with ties InstructorNo, COUNT(InstCourses.CourseNo) as NoTeachableCourses
from
...
group by InstructorNo
order by NoTeachableCourses desc;https://stackoverflow.com/questions/33294300
复制相似问题