Sql server 不使用TOP显示值最小的行的SQL
我试图通过不使用top函数列出值最小的行。 这是我的密码Sql server 不使用TOP显示值最小的行的SQL,sql-server,Sql Server,我试图通过不使用top函数列出值最小的行。 这是我的密码 > SELECT COUNT(SOH.SalesOrderNumber) AS NumberOfSales, SP.Name FROM Person.StateProvince SP JOIN Person.Address A ON SP.StateProvinceID = A.StateProvinceID JOIN Sales.SalesTerritory AS ST ON SP.TerritoryID = ST.Terr
> SELECT COUNT(SOH.SalesOrderNumber) AS NumberOfSales, SP.Name FROM Person.StateProvince SP
JOIN Person.Address A ON SP.StateProvinceID = A.StateProvinceID
JOIN Sales.SalesTerritory AS ST ON SP.TerritoryID = ST.TerritoryID
JOIN Person.BusinessEntityAddress BEA ON A.AddressID = BEA.AddressID
JOIN Sales.SalesOrderHeader AS SOH ON BEA.BusinessEntityID = SOH.CustomerID
WHERE ST.Name = 'Australia'
GROUP BY SP.Name
理想情况下,结果应该是
销售名称编号
94塔斯马尼亚
谢谢大家! 这将是另一种选择:
SELECT NumberOfSales
,NAME
FROM (
SELECT COUNT(SOH.SalesOrderNumber) AS NumberOfSales
, SP.NAME
, ROW_NUMBER() OVER (
ORDER BY COUNT(SOH.SalesOrderNumber)) RN
FROM Person.StateProvince SP
INNER JOIN Person.Address A
ON SP.StateProvinceID = A.StateProvinceID
INNER JOIN Sales.SalesTerritory AS ST
ON SP.TerritoryID = ST.TerritoryID
INNER JOIN Person.BusinessEntityAddress BEA
ON A.AddressID = BEA.AddressID
INNER JOIN Sales.SalesOrderHeader AS SOH
ON BEA.BusinessEntityID = SOH.CustomerID
WHERE ST.NAME = 'Australia'
GROUP BY SP.NAME
) RS
WHERE RN = 1
我第一行的销售编号、姓名有误。(无效列名)以及结尾处的位置。(Where附近的语法无效,应为AS、ID或Quoted_ID)(RN的列名无效)@KinLoo Try now,我忘记为结果集添加别名。