我很难理解为什么这两个语句给出了相同的输出:
案例1:
SELECT sum(DISTINCT prod_price)
FROM PRODUCTS
案例2:
SELECT SUM(SQ.COST)
FROM (SELECT DISTINCT [VEND_ID] as PROD,[PROD_PRICE] as COST FROM PRODUCTS) SQ
其中我的SELECT * FROM Products
输出如下所示:
发布于 2014-11-06 18:09:24
考虑一下这个查询
SELECT SUM(SQ.COST)
FROM (SELECT DISTINCT [VEND_ID] as PROD,[PROD_PRICE] as COST
FROM PRODUCTS) SQ
作为
SELECT DISTINCT [VEND_ID] as PROD,[PROD_PRICE] as COST FROM PRODUCTS
进入临时表,假设名为SQ,有两列:
这个查询将首先被评估,然后查询的下一部分如下:
SELECT SUM(SQ.COST)
FROM SQ
这与你的原始查询是一样的,因此答案也是一样的。
发布于 2014-11-06 18:10:49
产品表中有6个不同的product_price
和vend_id
组合。
巧合的是,如果我只取product_price
,那么还有6个不同的记录:
3.49
5.99
8.99
11.99
4.99
9.49.
因此总和是一样的
https://stackoverflow.com/questions/26786299
复制