Sql server MSSQL中的简单查询。挑选

Sql server MSSQL中的简单查询。挑选,sql-server,select,Sql Server,Select,我是MSSQL的初级用户。我无法正确地完成我的查询。这应该是一个简单的问题 这是我的密码: SELECT Pass_in_trip.date, Count(date) as numbOfPassengers From Pass_in_trip, Trip WHERE (Trip.trip_no = Pass_in_trip.trip_no AND Trip.town_from='Rostov') Group BY date HAVING COUNT(date) = 3 这样就行了。但是我想比较

我是MSSQL的初级用户。我无法正确地完成我的查询。这应该是一个简单的问题

这是我的密码:

SELECT Pass_in_trip.date, Count(date) as numbOfPassengers
From Pass_in_trip, Trip
WHERE (Trip.trip_no = Pass_in_trip.trip_no AND Trip.town_from='Rostov')
Group BY date
HAVING COUNT(date) = 3
这样就行了。但是我想比较COUNT(date)和MAX(COUNT(date)),然后我遇到了一个问题:

无法对包含 聚合或子查询


我想这可能就是你想要的

公共表表达式将有助于避免重复查询

WITH cte as
  (
    SELECT Pass_in_trip.date, Count(date) as numbOfPassengers
    FROM Pass_in_trip
    INNER JOIN Trip 
       ON Trip.trip_no = Pass_in_trip.trip_no
    WHERE Trip.town_from='Rostov'
    GROUP BY date
  )
SELECT date, numbOfPassengers
FROM cte
WHERE numbOfPassengers = (SELECT MAX(numbOfPassengers) FROM cte)

首先,你没有正确描述你的问题。max(count())会做什么?因为您有一个group by,所以计数只是一个值,取其最大值仍然是相同的数字。