将可能造成混淆的表计算总计显示为 null

借助表计算,您可以将条件逻辑应用于“探索”的总计行中的值,并将可能具有误导性的总计替换为 null。当 mean、median 或 percentile 等聚合产生令人困惑的摘要值时,您可以使用 if() 和 is_null() 表达式来显示 null 符号。如需使用 Looker 函数和运算符构建自定义表达式或应用快捷计算,您必须拥有创建表计算的权限。

为什么“总计”行中的计算结果可能令人困惑

本页面中的示例和讨论基于一个探索查询示例:订单项数、用户数、每位用户的订单项数和平均订单项数(按订单创建日期分组),并应用了总计选项:

每个用户的订单项数总计为 4.5,即 54,767(订单项总数)除以 12,290(用户数总计)后四舍五入得到的预期总计。

Mean Order Items 的总计值为 54,767,即 Order Items Count 的总计值 54,767 除以 1,向用户显示此值可能没有意义。

如使用表计算文档页面的使用表计算时的注意事项部分所述,表计算会根据单个总计行(而不是数据列中的值)计算总计。对于某些计算,结果很容易理解,例如每个用户的订单项数表计算总计。

不过,执行汇总的表计算(例如,使用 percentile 和 median 的计算)可能会以令人困惑的方式计算总计,例如在“探索”示例中的平均订单商品数总计。

在“总计”行中将计算总计替换为 null 符号

如果表计算总计中存在可能令人困惑的结果,您可以使用以下表计算表达式将其中一个总计替换为 null 符号。您可以将 my_grouping_dim 替换为您的分组维度,并将 table_calc 替换为您希望在总计行中显示 null 的表计算:

if(is_null(my_grouping_dim), null, <table_calc>)

如果将上述表达式应用于平均订单商品数表计算,则表计算将在数据表总计行中为平均订单商品数总计显示 null 符号:

  if(is_null(${orders.created_date}), null, mean(${order_items.count}))

此结果在数据表中如下所示:

探索数据表,在“Mean Order Items Total”行和列中显示 null,而不是 54,767。

其他资源

如需详细了解如何排查测量总计问题,请参阅为什么我的总计与表中的值不一致?最佳实践页面。