我在bigquery中发现了一个小故障/错误.我们根据starschema.net:clouddb:bank.Banks_token下的银行统计数据得到了一张表
如果我运行以下查询:
SELECT count(*) as totalrow,
count(DISTINCT BankId ) as bankidcnt
FROM bank.Banks_token;
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
Row totalrow bankidcnt
1 9513 9903
Run Code Online (Sandbox Code Playgroud)
我的问题是如果我有9513row我怎么能得到9903row,这比表中的rowcount多390个.
Jer*_*dit 33
在BigQuery中,COUNT DISTINCT是所有大于1000的结果的统计近似值.
您可以提供可选的第二个参数来给出使用近似值的阈值.因此,如果在示例中使用COUNT(DISTINCT BankId,10000),则应该看到确切的结果(因为实际的行数小于10000).但请注意,使用较大的阈值在性能方面可能成本较高.
请参阅此处的完整文档:https: //developers.google.com/bigquery/docs/query-reference#aggfunctions
2017年更新:
使用BigQuery #standardSQL COUNT(DISTINCT)
总是精确的.对于近似结果使用APPROX_COUNT_DISTINCT()
.为什么有人会使用大约结果?看到这篇文章.
smn*_*ntx 28
我使用EXACT_COUNT_DISTINCT()作为获取确切唯一计数的方法.它比COUNT更清晰,更通用(DISTINCT值,n> numRows)
在此处找到:https://cloud.google.com/bigquery/query-reference#aggfunctions
归档时间: |
|
查看次数: |
41266 次 |
最近记录: |