使用带有COUNT的HAVING来限制结果

时间:2014-05-14 19:24:43

标签: sql sql-server

我想编写一个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

5 个答案:

答案 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)