なぜ2つのクエリの結果は同じですか?結果は(私はのNorthwindデータベースを使用してい。)DISTINCTキーワードを使用すると、このクエリ結果が変更されないのはなぜですか?
SELECT ContactTitle
, COUNT(CustomerID) AS NumberOfCustomer
FROM dbo.Customers
WHERE ContactTitle LIKE '%sales%'
GROUP BY ContactTitle
HAVING COUNT(*) >= 5
ORDER BY NumberOfCustomer desc
と
SELECT
DISTINCT ContactTitle
, COUNT(CustomerID) AS NumberOfCustomer
FROM dbo.Customers
WHERE ContactTitle LIKE '%sales%'
GROUP BY ContactTitle
HAVING COUNT(*) >= 5
ORDER BY NumberOfCustomer desc
を:私自身の理解で
ContactTitle NumberOfCustomer
--------------------- ----------------
Sales Representative 17
Sales Manager 11
Sales Associate 7
Sales Agent 5
、2番目のクエリは、個別のタイトルを取得し、そのレコードをカウントするので、各タイトルは1のレコード数しかないので、結果は何もないと予想しています。正しいですか?
*「ContactTitle列にDISTINCTを追加する」*を除き、正しいです。 'DISTINCT'は列ではなく行全体に適用されます。 –
イラストレーションありがとうございます。どのようにクエリの実行計画を理解していますか? – SkyDrive
短編小説(恥知らずの広告):[選択:注文または処理](http://stackoverflow.com/questions/6545664/using-case-expression-column-in-where-clause/6545685#6545685) –