2
我做一些查詢稱爲數據庫:羅斯文可用做證明,如果從官方網站下載它,我執行以下查詢: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
:
HAVING SUM(UnitPrice*UnitsInStock)>10000
我想接收一個關於SQL Server執行查詢的命令的解釋,我的意思是什麼是SQL Server執行的第一個和最後一個操作,除了我無法弄清楚它是如何知道的適用所謂的總和稱爲表中的操作:產品,
SUM(UnitPrice*UnitsInStock) 'AMOUNT'
我不指定但是被計算井的操作,也COUNT
對我來說是非常不明確的,但給我正確的結果,我真的感謝有關支持,如何計算此查詢的任何詳細解釋。
感謝@TheGrameiswar,這是真正有用的, – neo33
@TheGameriswar,只是一個快速的問題,我正在讀一章,並在這裏說,在我輸入查詢子句的順序中,與它們在邏輯上解釋的順序完全不同,你放在這裏的是代表邏輯順序,對嗎? – neo33
你的解釋是正確的 – TheGameiswar