“探索”中的总计功能会对不同的基础数据(而不仅仅是数据表格中显示的行和列)进行求和。这意味着,如果您仅查看可见数据,总计返回的值可能会与您预期的值有所不同。请继续阅读,了解更多详情及计算所需总量的解决方案。
为什么总数可以较低
假设您想统计在一段时间内购买了特定类别商品的唯一身份用户数。您可以创建一个“探索”查询,其中用户数按商品类别分组:
用于创建此表的 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})
或者,如果您有权创建表格计算,则可以使用运行列总计快捷计算。
计算行总计
如需计算行值的总数,您可以在表计算中使用 sum
和 pivot_row()
函数:
sum(pivot_row(${view_name.field_name}))
注意:此方法将生成一个新列,而不会显示为原生的“总计”行或列。
或者,如果您有权创建表计算,则可以使用连续行总计快捷方式计算。
其他资源
一些执行聚合的表计算(例如使用 percentile
或 median
的计算)的加总可能也达不到预期。这是因为表格计算使用“总计”行中的值(而非数据列中的值)来计算总计。有关问题排查提示,请参阅将可能造成混淆的表格计算总数显示为 Null 最佳做法页面。