2014-11-06 59 views
0

我挣扎理解为什么这两个说法都给予同样的输出的输出:无法理解涉及鲜明

案例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看起来像: enter image description here

回答

2

想想这个查询

SELECT SUM(SQ.COST) 
FROM (SELECT DISTINCT [VEND_ID] as PROD,[PROD_PRICE] as COST 
     FROM PRODUCTS) SQ 

AS

SELECT DISTINCT [VEND_ID] as PROD,[PROD_PRICE] as COST FROM PRODUCTS 

进入临时表说名为SQ有两列:

  • VEND_ID
  • PROD_PRICE

这查询我今后会有先评估,然后查询的下一个部分,如:

SELECT SUM(SQ.COST) 
FROM SQ 

这不过是与您的原始查询,因此相同的答案。

+0

+1,很好的解释。 – radar 2014-11-06 18:11:44

+0

@RADAR谢谢:)很高兴能帮助别人理解。 – SMA 2014-11-07 11:38:45

0

产品表中有6个不同的product_pricevend_id组合。

巧合的是,如果我只取product_price,然后也有6次不同的记录:

3.49 
5.99 
8.99 
11.99 
4.99 
9.49. 

因此总和相同