我刚刚注意到我的 Informix SQL 列(在同一个表中)的某些 上有些奇怪。当我执行此查询时
SELECT DISTINCT colName
FROM myTable
例如,我得到 40 行。但是当我这样做的时候
SELECT COUNT(DISTINCT colName)
FROM myTable
我得到一个大得多的数字(例如 300)。但是,它在某些列上有效(行数和计数结果相等)。如果我这样做:
SELECT colName
FROM myTable
我得到的行数与
SELECT COUNT(*)
FROM myTable
给出了另一个(高得多的)数字,即表中所有行的确切数量。
为什么 COUNT (DISTINCT)
返回的数字和常规 SELECT DISTINCT
返回的行号在某些列上不同而在其他列上不同?
最佳答案
根据MSDN documentation在 COUNT
上:
另一方面,DISTINCT Specifies that COUNT returns the number of unique nonnull values.
SELECT DISTINCT
将在结果集中包含空值。
不确定这是否能让您一路找到解决方案,但我怀疑空值与此有关。
关于sql - 为什么 SELECT DISTINCT 返回的行数与 COUNT(DISTINCT) 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355504/