大查询 提高准确性问题



我们在提高 BigQuery 的准确性方面遇到了问题,我们的使用案例如下,我们使用的是一个包含 16 亿条记录的表,对于我们的问题来说,这个表并不大,我们正在努力寻找唯一用户。

首先,我们认为使用"非重复计数",但正如文档所告诉的大量数据,您可以获得估计结果。为了改善这一点,我们尝试用"count + group by"代替"count distinct"语句。但是 bigquery 的结果是响应太大。我们首先按UserID分组,我们继续这个想法,但减少了数据数量,选择了特定的露营地,大大减少了数据量。但结果是一样的,反应太大了。

关于如何在bigQuery中获取唯一用户的任何想法或意见?

COUNT(DISTINCT field)返回一个近似的答案,正如你已经意识到的那样。对于较大的 N 值,可以使用 COUNT(DISTINCT field, n) 来提高精度。此值越大,结果就越准确,尽管如果设置得太高,可能会遇到"结果太大"错误。

可以使用"分组依据"获取确切的唯一计数。这可能会使计算同一查询中的其他值变得困难,但 GROUP EACH BY 将适用于任何大小的表。例如:

select count(*) from (select field from dataset.table GROUP EACH BY field)

最新更新