首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigQuery计数(DISTINCT值)与计数(值)

BigQuery计数(DISTINCT值)与计数(值)
EN

Stack Overflow用户
提问于 2013-05-17 20:36:05
回答 2查看 69.5K关注 0票数 28

我在bigquery中发现了一个小故障/bug。我们得到了一个基于starschema.net:clouddb:bank.Banks_token下的银行统计数据的表

如果我运行以下查询:

代码语言:javascript
复制
SELECT count(*) as totalrow,
count(DISTINCT BankId ) as bankidcnt
FROM bank.Banks_token;

我得到了以下结果:

代码语言:javascript
复制
Row totalrow    bankidcnt    
1   9513    9903    

我的问题是,如果我有9513row,我怎么能得到9903row,这比表中的行数多了390row。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 48
EN

Stack Overflow用户

发布于 2015-05-23 06:34:21

我已经使用EXACT_COUNT_DISTINCT()作为一种方法来获得确切的唯一计数。它比COUNT(DISTINCT值,n> numRows)更简洁、更通用

点击此处:https://cloud.google.com/bigquery/query-reference#aggfunctions

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16609219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档