我在bigquery中发现了一个小故障/bug。我们得到了一个基于starschema.net:clouddb:bank.Banks_token下的银行统计数据的表
如果我运行以下查询:
SELECT count(*) as totalrow,
count(DISTINCT BankId ) as bankidcnt
FROM bank.Banks_token;我得到了以下结果:
Row totalrow bankidcnt
1 9513 9903 我的问题是,如果我有9513row,我怎么能得到9903row,这比表中的行数多了390row。
发布于 2013-05-19 11:40:06
在BigQuery中,COUNT DISTINCT是所有大于1000的结果的统计近似值。
您可以提供一个可选的第二个参数来指定使用近似值的阈值。因此,如果您在示例中使用COUNT(DISTINCT BankId,10000),您应该会看到确切的结果(因为实际行数小于10000)。但是,请注意,使用较大的阈值可能会在性能方面付出高昂的代价。
请参阅此处的完整文档:https://developers.google.com/bigquery/docs/query-reference#aggfunctions
更新2017:
使用BigQuery # COUNT(DISTINCT)时,With始终是精确的。若要获得近似结果,请使用APPROX_COUNT_DISTINCT()。为什么会有人使用近似的结果?See this article。
发布于 2015-05-23 06:34:21
我已经使用EXACT_COUNT_DISTINCT()作为一种方法来获得确切的唯一计数。它比COUNT(DISTINCT值,n> numRows)更简洁、更通用
点击此处:https://cloud.google.com/bigquery/query-reference#aggfunctions
https://stackoverflow.com/questions/16609219
复制相似问题