2017-06-12 67 views
2

我有兩個查詢應該返回相同的結果。有誰知道我爲什麼得到不同的結果?ms訪問:Count,DISTINCT和Where子句。不同的結果

SELECT Count(Column1) AS UniqueValues 
FROM (SELECT DISTINCT Column1, Column2 FROM Table1) AS T 
WHERE Column2 is not null; 

和我也有這個查詢

SELECT Count(Column1) As UniqueValues 
FROM (SELECT Distinct Column1 From Table1) As T; 

通常我有5種類型的第2列的和的總組合數所有5個的查詢從總結果i。從僅使用第1列得到不同。有誰知道爲什麼?

謝謝!

+0

當你只運行內部查詢如何結果不同? –

回答

0

SELECT DISTINCT Column1, Column2將包含兩列的所有唯一組合。因此,如果Column1中的給定值與Column2中的兩個不同值一起出現,則子查詢將返回兩條記錄,其中以前只返回一條記錄。

你行SELECT Count(Column1) As UniqueValues會在這種情況下返回2,而不是1對,都記錄有Column1相同的值,但COUNT()功能不關心這個。你的名字是UniqueValues,但這裏沒有什麼要求Column1中的值是唯一的。