私はあなたが見る通り、Count(CompetitorID)
が複数回呼び出されます。これはパフォーマンス上の問題ですか、またはSQL Server 2008のキャッシュはCount
ですか?これがパフォーマンス上の問題であれば、複数のルックアップを防ぐためにCount
を保存することは可能ですか?SELECTクエリでCOUNTが重複しないようにする
SELECT EventID,Count(CompetitorID) AS NumberRunners,
CASE WHEN Count(CompetitorID)<5 THEN 1
WHEN Count(CompetitorID)>=5 AND Count(CompetitorID)<=7 THEN 2
ELSE 3 END AS NumberPlacings
FROM Comps
GROUP BY EventID Order By EventID;
構文では、操作を繰り返しているように見えますが、クエリアナライザはその操作を最適化する可能性があります。 – HABO