私はと呼ばれるデータベースにいくつかのクエリを作っていた:あなたは公式サイトからダウンロードすると、私は次のクエリを実行し、証明作るために利用可能であるのNorthwind:SQL Serverは次のクエリをどのように処理しますか?
SELECT C.CategoryName NAME,
P.CATEGORYID CODE,
COUNT(*) 'PIECES',
SUM(UnitPrice*UnitsInStock) 'AMOUNT'
FROM
Northwind.dbo.Categories C, Northwind.dbo.[products] P
WHERE
P.CategoryID = C.CategoryID
AND
P.CategoryID>2
GROUP BY
P.CategoryID, C.CategoryName
HAVING SUM(UnitPrice*UnitsInStock)>10000
ORDER BY 'AMOUNT' DESC;
クエリは私に右の結果を与えています:
NAME CODE PIECES AMOUNT
--------------- ----------- ----------- ---------------------
Seafood 8 12 13010.35
Dairy Products 4 10 11271.20
Confections 3 13 10392.20
事実は、多くの操作が関与しているので、どのようにSQL Serverは、そのクエリを計算しない、私は理解できないということであるかの時点ではSQL ServerがHAVING
を実行するために、一時的なデータ・ベースを生成することがあります。
SQL Serverがクエリを実行する順序について説明したいと思いますが、SQL Serverが実行する最初と最後の操作は何ですか?テーブルにSUMと呼ばれる操作を適用するために呼び出さ:製品、
SUM(UnitPrice*UnitsInStock) 'AMOUNT'
を私はしかし、うまく操作を計算され、また、私にとってCOUNT
は非常にあいまいですが、私は本当に、私に正しい結果を与えていることを指定しておりませんこの問い合わせをどのように計算するかについての詳細な説明をお寄せいただき、ありがとうございます。
おかげで@TheGrameiswarが、これは本当に便利だった、ちょうど1つの簡単な質問 – neo33
@TheGameriswarが、私は章を読み、ここにされたことを言います私がクエリー句をタイプするときの順序は、論理的に解釈されるよりもかなり異なります。論理的な秩序を表すことをここに置くのは正しいのですか? – neo33
あなたはintrepretedが正しいです – TheGameiswar