gpt4 book ai didi

sql - 为什么 SELECT DISTINCT 返回的行数与 COUNT(DISTINCT) 不同?

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:48 27 4
gpt4 key购买 nike

我刚刚注意到我的 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 documentationCOUNT 上:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com