我们要查询其中一个数据集以获取唯一ID
SELECT count(distinct id) FROM [MyTable] LIMIT 1
另一个查询运行了类似的命令
SELECT count(*) From ( select id FROM MyTable group by id) A ;
第一个命令效率更高,但输出应该相同。但是,他们得到了不同的结果。第一个查询返回的结果大约是数据集的1.5%,超过1亿行。
答案 0 :(得分:4)
COUNT(DISTINCT field)
只是一个估计值。如果您需要准确的结果,可以使用EXACT_COUNT_DISTINCT(field)
。
查询参考中解释了这一点:https://cloud.google.com/bigquery/query-reference?hl=en#countdistinct
答案 1 :(得分:2)
检查COUNT([DISTINCT] field [, n])定义
It is a statistical approximation and is not guaranteed to be exact.
第二个查询返回精确计数,因此差异