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