AdventureWorks
データベース(https://technet.microsoft.com/en-us/library/ms124438(v=sql.100).aspx)を使用して、自宅の住所がオーストラリアにあるすべての顧客の最も一般的な顧客名を見つける必要があります。質問から最大値を取得
私が必要としている答え(「レーシー」は25回使用されていますが)は561行あります。これを1行に限定するにはを使用せずに結果を操作するにはTOP x
またはSET ROWCOUNT
を使用しますか?
SELECT
FirstName,
COUNT(PP.FirstName) AS FirstNameCount
FROM
Person.Person AS PP
INNER JOIN Sales.Customer AS SC
ON SC.PersonID = PP.BusinessEntityID
INNER JOIN Person.BusinessEntity AS PBE
ON PBE.BusinessEntityID = PP.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress AS PBEA
ON PBEA.BusinessEntityID = PBE.BusinessEntityID
INNER JOIN Person.AddressType AS PAT
ON PAT.AddressTypeID = PBEA.AddressTypeID
INNER JOIN Person.Address AS PA
ON PA.AddressID = PBEA.AddressID
WHERE
PAT.AddressTypeID = 2 AND
StateProvinceID = 50 OR
StateProvinceID = 64 OR
StateProvinceID = 66 OR
StateProvinceID = 71 OR
StateProvinceID = 77
GROUP BY
FirstName
ORDER BY
FirstNameCount DESC
ちょうど興味があります - あなたはなぜTOPを使用できませんか?これは、特に 'TOP'が行うように設計されています。結果をX個の行に限定します。 – dotnetom
質問者が私に – BobSacamano
を許可しないため、andsとorsが混在しています。[operator precedence](https://msdn.microsoft.com/en-us/library/ms190276.aspx)を参照してください。 StateProvinceIDをリストするために 'in'を使うか、そのまわりにカッコを入れます。 –