Sql count distinct如何能够显示重复项,而group by却不能?
我想查询数据中的重复项 所以,我要做的第一件事是我做一个计数:Sql count distinct如何能够显示重复项,而group by却不能?,sql,apache-spark-sql,Sql,Apache Spark Sql,我想查询数据中的重复项 所以,我要做的第一件事是我做一个计数: select count(distinct colA, colB ....) from Table 还有一个计数: select count(*) from Table 我发现计数distinct低于计数(*)。 所以,现在我想实际看到副本,所以我这样做: select colA, colB, .... count(*) from Table group by colA, colB ... having count(*) &g
select count(distinct colA, colB ....) from Table
还有一个计数:
select count(*) from Table
我发现计数distinct低于计数(*)。所以,现在我想实际看到副本,所以我这样做:
select colA, colB, .... count(*) from Table
group by colA, colB ... having count(*) > 1;
现在,由于某种原因,它根本不会返回任何记录。表太大,我无法在这里显示结果,列太多
这两者怎么可能都是真的?计数不同,但当我对它们进行分组并筛选count(*)>1
时,不会显示任何行
谢谢。您看到的行为可能取决于您使用的数据库。但是,我很确定问题是由于列中的
NULL
值造成的。例如,MySQL明确地将COUNT(DISTINCT)
描述为:
计数(不同的表达式,[expr…])
返回具有不同非空表达式的行数的计数
价值观
并非所有数据库都支持带有多个表达式的
COUNT(DISTINCT)
。不同的数据库可能会以不同的方式处理NULL
值。但是,它们似乎是最有可能导致差异的原因。用您正在使用的数据库标记您的问题。谢谢。与我正在使用的sparkSQL
相同: