为什么我的总计值与表格中的值不符?

探索中的总计功能会对不同的基础数据进行求和,而不只是在数据表格中显示的行和列。这意味着,如果您仅查看可见数据,总计返回的值可能会与您的预期不同。请继续阅读,了解更多详情和计算所需总费用的解决方案。

为什么总计值可能会更低

假设您想要统计一段时间内购买过某类产品的去重用户数。您可以创建“探索”查询,并将“用户数”按“产品类别”分组:

用于创建此表的 SQL 如下所示:

  SELECT
  products.category AS 'products.category',
  COUNT(DISTINCT users.id ) AS 'users.count'

启用总计选项后,用户总数为 12290。

请注意,如果您在“用户数”列中手动添加值,得到的数字会远高于 Looker 报告的总数。由于每个用户都可以从多个类别的产品中进行购买,因此当您自行添加每行时,您会多次添加某些用户。但是,Looker 使用 SQL 查询来计算“唯一”用户数,并且这样可以避免重复计数。

Looker 用于计算总数的 SQL 如下所示:

  SELECT
  COUNT(DISTINCT users.id ) AS 'users.count'

请注意,Looker 使用 users.count 测量中的 SQL 计算总数。

所有过滤条件和联接也将包含在总计数查询中,这可确保总计数据在查询发生变化时保持一致。

为什么总计值可能会更高

以下两种情况可能会出现以下情况:Looker 总计值可能高于您通过将行值相加获得的总计值:当查询按测量条件过滤时,或查询达到行数上限时。

  • 如果按测量过滤查询,则系统会在应用过滤条件或限制之前计算总计。
  • 对于行数上限,Looker 创建的总查询不受这些限制的约束,因为总数只会返回一行。

如何计算总值

要仅根据表格中的值计算总计值,您可以使用表格计算创建新列。如需了解详情,请参阅以下示例。

计算列总计

如需计算列值的总和,您可以在表计算中使用 sum 函数:

  sum(${view_name.field_name})

或者,如果您有权创建表计算,则可以使用运行列总计快捷计算。

计算行总计

如需计算行值的总和,您可以在表计算中使用 sumpivot_row() 函数:

  sum(pivot_row(${view_name.field_name}))
注意:此方法将生成一个新列,而不会显示为原生的“总计”行或列。

或者,如果您有权创建表计算,则可以使用累计行总计快捷计算。

其他资源

某些执行聚合的表计算(例如使用 percentilemedian 的计算)合计可能也达不到预期。这是因为表格计算使用的是总计行中的值,而不是数据列中的值来计算总计。有关问题排查提示,请参阅将可能令人困惑的表计算总数显示为 Null 的最佳做法页面。