以下のSQLクエリ(SQL Server 2008)を改善するにはどうすればよいですか?私は、サブ選択を避けるために試してみたい、と私はこれは、ハード、同じデータなしでテストするために働くことがあり、この副選択クエリの改善
StateId TotalCount SFRCount OtherCount
---------------------------------------------------------
AZ 102 50 52
CA 2931 2750 181
etc...
SELECT
StateId,
COUNT(*) AS TotalCount,
(SELECT COUNT(*) AS Expr1 FROM Property AS P2
WHERE (PropertyTypeId = 1) AND (StateId = P.StateId)) AS SFRCount,
(SELECT COUNT(*) AS Expr1 FROM Property AS P3
WHERE (PropertyTypeId <> 1) AND (StateId = P.StateId)) AS OtherCount
FROM Property AS P
GROUP BY StateId
HAVING (COUNT(*) > 99)
ORDER BY StateId
私の経験では、「SUM(CASE ...)」はインナーセレクトと比較して驚くほど速い傾向があります。 – ean5533
恐ろしい、ありがとう!私はあなたの答えを編集して、 "OtherCount"の後に無関係なコンマを削除しました。 – Scott
+1、素晴らしい答え –