1. HENGSHI SENSE 新增计算指标说明
新增计算指标 解释说明、适用场景、使用案例。
下面以 coffee分析 为例详细说明,coffee分析 的数据以及分析场景在 高级计算使用说明中有详细说明。
1.1. 解释说明
图表中可根据业务场景添加 计算指标。计算指标 为在图表中根据已有字段添加的聚合表达式。存储形式为一个计算表达式,在不同的业务场景中,可按照维度所选字段
计算指标区别于数据集中的原始字段和新增字段,指标本身不具有分组意义,存储形式为表达式,只有在在具体的探索场景下依赖图表的维度分组才有意义。
新增指标 的存储形式非具体的计算值,而是计算的表达式,在图表中只能作为度量,不能作为维度使用。
如下图所示,在图表编辑页面的 字段和指标 ,可以点击 + ,选择 新建计算指标 添加计算指标:
点击 新建计算指标 ,页面跳转到新增计算指标的窗口:
例如:
新增计算指标 销售量 ,对应表达式为 sum({数量}) ,点击保存,新增指标即可添加成功。
该指标的意义为汇总销售数量求和,因为指标本身不带有group_by()信息,所以需要在使用的过程中,给定分组信息,在不同的探索场景中依据不同的分组信息,计算出不同的聚合结果值。
场景一:
在具体的探索场景中,维度分组选择 订单日期(年) ,指标 销售额 作为度量时,按照年份分组,每年按照 sum({数量}) 计算聚合值。即 按年分组后,再计算 数量 的和,为各年份的度量值;
创景二:
在具体的探索场景中,维度分组选择 地区 ,指标销售额作为度量时,按照地区分组,每个地区内按照 sum({数量}) 计算聚合值。即 按照地区分组后,再计算 数量 的和,为每个地区的度量值。
计算指标的表达式内层函数可以是为实现具体的业务场景撰写的任意函数的表达式,但是表达式的最外层必须以聚合表达式包裹。例如:
- max(trunc_month({订单日期}))
- sum({数量} * {价格})
- distinct_count(concat({first_name}, '—',{last_name}))
等为比较简单的计算指标的表达式。
另外,计算指标 本身只存储其对应的表达式,而非具体的计算结果,占用的空间更小,性能更高。
需要注意:
- 新增计算指标时,填充内容只能选择高级表达式
- 计算指标的表达式必须为聚合表达式,即表达式的最外层的函数必须是聚合函数,例如:sum()、max()、distinct_count()等
1.2. 适用场景
计算指标 其表达式必须为聚合表达式,在用于图表的度量时,相对于数据集的原始字段已经新增字段,其形式约等于将度量的计算方式在新增指标时添加至表达式中。
数据集中的字段作为度量时,需要选择聚合方式,即计算方式:
计算指标本身是一个聚合表达式,即将聚合方式(计算方式)添加至表达式的最外层,内层包裹需要的函数即可:
如上动图所示:新增计算指标 数量汇总,表达式为 sum({数量}),在图表中相同的维度字段的情况下,与直接添加 数量 字段作为度量,计算方式选择 求和 所得的结果是一致的。
计算指标的表达式中含有分组函数
部分情况下,计算指标的表达式中需要使用窗口函数计算,例如:
sum(sum({数量})) over (partition by {门店} order by trunc_year({订单日期}))
表达式中已经包含了分组字段 门店、订单日期:
这种情况下添加计算指标后,将指标作为度量,选择任意字段作为维度时,会出现报错信息:
需要将指标的表达式中的分组字段添加至维度中,即可正常使用:
1.3. 使用案例
以coffee分析为例:
场景一:
分别统计每月 到店点餐 和 外卖下单 的订单数量,字段 订单类型 为每笔订单的订单状态,订单类型 = 1 位店内点餐,订单类型 = 0 为外卖点餐。
通过原始的数据集字段,很难实现该需求。通过新增指标的方式,即可快速实现该需求,可添加计算指标:
新增指标每月店内点单数,表达式为:
sum(count(if({订单类型} = 1, {订单编号}, NULL))) OVER (ORDER BY trunc_month({订单日期}) ASC)
新增指标每月外卖点单数,表达式为:
sum(count(if({订单类型} = 0, {订单编号}, NULL))) OVER (ORDER BY trunc_month({订单日期}) ASC)
在图表中,选择 订单日期 做维度,按月聚合,将新增的指标 每月店内店单数 、每月外卖点单数 作为度量,如下图所示:
场景二:
统计各地区不同年份的咖啡销售额。字段 价格 为各咖啡种类的单价,字段 数量 为每笔订单的销售数量。
即可通过新增计算指标的方式,快速实现该需求:
销售额:sum({价格} * {数量})
在图表中,选择 地区 做维度,按月聚合,将新增的指标 销售额 作为度量,如下图所示: