通过上一篇 精读《什么是 LOD 表达式》 的学习,你已经理解了什么是 LOD 表达式。为了巩固理解,结合场景复习是最有效的手段,所以这次我们结合 Top 15 LOD Expressions 这篇文章学习 LOD 表达式的 15 大应用场景,因篇幅限制,本文介绍 1~8 场景。
1. 客户下单频次
各下单次数的顾客数量是多少?
柱状图的 Y 轴显然是 count([customerID])
,因为要统计 当前维度下的客户总数。
这里插一句,对于柱状图的 Y 轴,在 sql 里就是对 X 轴
group by
后的聚合,因此 Y 轴就是对 X 轴各项的汇总。
柱状图的 X 轴要表达的是以何种粒度拆解,比如我们是看各城市数据,还是看各省数据。在这个场景下也不例外,我们要看 各下单次数下的数据,那么如何把下单次数转化为维度呢?
我们需要用 FIX 表达式制作一个维度字段,表示各顾客下单次数。很显然数据库是没有这个维度的,而且这个维度需要按照客户 ID group by 后,按照订单 ID count 聚合才能得到,因此可以利用 FIX 表达式:{ fixed [customerID] : count([orderId]) }
描述。
2. 阵列分析
当我们看年客户销售量时,即便是逐年增长的,我们也会有一个疑问:每年销量中,首单在各年份的顾客分别贡献了多少?
因为关系到老客忠诚度和新客拓展速度,新客与老客差距过大都不好,那我们如何让 2021 年的柱状图按照 2019、2020、2021 年首单的顾客分层呢?这就是阵列分析。
我们要画一个柱状图,X、Y 轴分别是 [Year]
、sum([Sales])
。
为了让柱状图分层,我们需要一个表示颜色图例的维度字段,比如我们拖入已有的性别维度,每根柱子就会被划分为男、女两块。但问题是,我们制作并不存在的 “首单年份维度”?
答案是利用 FIX 表达式:{ fixed [customerID] : min([orderDate]) }
。