Sql server MSSQL中的简单查询。挑选
我是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 这样就行了。但是我想比较
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,所以计数只是一个值,取其最大值仍然是相同的数字。