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