我想编写一个SQL查询,列出所有班级中有三(3)名以上学生的教师(在本例中为Mrs. Smith
)。我最初认为HAVING
子句是实现此目的的正确方法,但我没有按预期提出Mrs. Smith
。
Teacher Student
-------------------------
Mrs. Smith Danny
Mrs. Smith Emily
Mrs. Smith Todd
Mrs. Smith Paul
Mr. French Sam
Mr. French Carol
Mr. French Patty
SELECT DISTINCT Teacher
FROM Students
HAVING (COUNT(Teacher) > 3)
GROUP BY Teacher, Student
答案 0 :(得分:4)
使用HAVING是正确的,你只需要正确使用它
SELECT Teacher
FROM Students
GROUP BY Teacher
HAVING COUNT(Student) > 3
基本上,您将教师记录分组在一起,同时计算每位教师拥有的学生的数量。并按此计算过滤。
答案 1 :(得分:2)
是的,HAVING是正确的。尝试:
SELECT Teacher
FROM Students
GROUP BY Teacher
HAVING (COUNT(1) > 3)
答案 2 :(得分:1)
我认为你只需要在最后放置HAVING
条款:
SELECT DISTINCT Teacher
FROM Students
GROUP BY Teacher, Student
HAVING COUNT(Teacher) > 3;
答案 3 :(得分:1)
所有教师 具有 超过三名学生
所以:
select teacher, count(student) --All Teachers
FROM Students
GROUP BY Teacher
HAVING COUNT(student) > 3 --Having more than three students
答案 4 :(得分:1)
由教师将其更改为仅分组,并在分组后添加
SELECT Teacher
FROM Students
GROUP BY Teacher
HAVING (COUNT(Teacher) > 3)