在Sql Server中,如何识别结果列,以便在where子句中使用它

Dan*_*ley 1 sql t-sql sql-server

这是问题所在.

select count(studentID) AS count from educators where count  > 1 group by studentid  
Run Code Online (Sandbox Code Playgroud)

无法正常工作,因为SQL Server还不知道count列.

所以我必须这样做

select *
  from (select count(StudentID) as count
          from educators
         group by studentid
       ) s
 where s.count > 1
Run Code Online (Sandbox Code Playgroud)

有更优雅的解决方案吗?似乎应该有一个更好的方法来做到这一点.

mgn*_*nan 5

您可以使用该HAVING子句,可能是这样的:

SELECT StudentID, COUNT(StudentID)
FROM educators
GROUP BY StudentID
HAVING COUNT(StudentID) > 1
Run Code Online (Sandbox Code Playgroud)

该查询将显示出现多次的所有StudentID.