1

我们有一个提高 BigQuery 准确性的问题,我们的使用案例如下,我们正在使用一个 16 亿条记录的表,一个对于我们的问题来说不是很大的表,并且我们正在尝试寻找唯一用户。

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

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

4

1 回答 1

3

COUNT(DISTINCT field)如您所见,返回一个近似答案。您可以通过使用COUNT(DISTINCT field, n)较大的 N 值来提高准确性。该值越大,结果越准确,但如果设置得太高可能会出现“结果太大”的错误。

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

select count(*) from (select field from dataset.table GROUP EACH BY field)
于 2012-05-10T18:49:15.627 回答