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

“探索”中的总计功能的工作原理是汇总不重复的底层数据,而不仅仅是数据表格中显示的行和列。也就是说,如果您仅查看可见数据,总计可能会返回与预期不同的值。请继续阅读,了解更多详情以及计算所需总金额的解决方案。

总计值可能较低的原因

假设您想统计在一段时间内购买了特定类别商品的唯一身份用户数。您可以创建一个“探索”查询,其中用户数商品类别分组:

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

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

启用总计选项后,用户总数为 12,290 人。

请注意,如果您手动添加“用户数”列中的值,得到的数字会远远高于 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 最佳实践页面。