2017-06-12 66 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中的值是唯一的。