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

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

为什么总数可以较低

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

用于创建此表的 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 最佳做法页面。