Sql server 在SQL Server 2008中查找聚合查询的最大值:选择城市最多的美国州
好的,SQL专家开发人员,我希望这听起来很简单。基本上,我希望形成一个查询,以查找每个州的城市数,并且只包含结果集中城市最多的州 比如:Sql server 在SQL Server 2008中查找聚合查询的最大值:选择城市最多的美国州,sql-server,aggregate-functions,Sql Server,Aggregate Functions,好的,SQL专家开发人员,我希望这听起来很简单。基本上,我希望形成一个查询,以查找每个州的城市数,并且只包含结果集中城市最多的州 比如: SELECT S.Name, MAX(COUNT(C.StateID) as 'Count') --NO Can do, please help! FROM tblStates as S JOIN tblCities as C ON S.StateID = C.StateID GROUP BY S.Name 请让我知道最简单的方法,使这个查询工作 谢谢也许有
SELECT S.Name, MAX(COUNT(C.StateID) as 'Count') --NO Can do, please help!
FROM tblStates as S JOIN tblCities as C
ON S.StateID = C.StateID
GROUP BY S.Name
请让我知道最简单的方法,使这个查询工作
谢谢也许有一种更优雅的方式,但这应该是可行的:
SELECT s.Name, MAX(Count) FROM
(SELECT S.Name, COUNT(C.StateID) as 'Count' --NO Can do, please help!
FROM tblStates as S JOIN tblCities as C
ON S.StateID = C.StateID
GROUP BY S.Name)
某些方言(如Postgres)允许在ORDER子句中使用列号:ORDER BY 2 DESC。LIMIT在2008年不是关键字。SQL server允许按顺序列号进行排序,也可以这样;SQL Server需要TOP n版本。
SELECT s.Name, MAX(Count) FROM
(SELECT S.Name, COUNT(C.StateID) as 'Count' --NO Can do, please help!
FROM tblStates as S JOIN tblCities as C
ON S.StateID = C.StateID
GROUP BY S.Name)
SELECT S.Name, COUNT(C.StateID) AS 'Count'
FROM tblStates as S JOIN tblCities as C
ON S.StateID = C.StateID
GROUP BY S.Name
ORDER BY COUNT(C.StateID) DESC LIMIT 1;