在LOD表达式的三种关键字中,Include可以创建聚合度低于可视化详细级别(即数据颗粒度较高)的表达式。本节记录要点:
- Include使用场景
- Include使用实例
Include的使用场景
一般来说,LOD表达式在选择使用哪种范围关键字的时候,并没有严格条件限制,可以根据实际情况灵活选择, 但从应用情况看,每个范围关键字实际上都有适合它的场景,在场景明确的前提下,选择更适合的范围关键字,有助于节约时间、提高效率。
具体而言,当有以下两类场景需求时,可以考虑选择Include:
- 要对数据以精细的详细级别进行计算然后重新聚合,并在可视化中以更高聚合度(更低数据粒度)显示时
- 希望计算的详细级别在向下钻取或添加时也能同步更改
如图所示,图中虚线是当前视图中的详细级别,Include可以在低于视图当前详细级别的层级对数据进行重新聚合,然后再回到当前详细级别进行数据展示。
比如:当前视图的详细级别是地区,可以使用Include在“客户”详细级别(即更高数据粒度)进行数据聚合,然后再回到“地区”详细级别将聚合后的数据进行展示。
Include使用实例
这里使用tableau自带的超市示例数据集。需要注意的是,该数据集中的每条记录代表着一个订单中的一种产品,也就是说,同一个订单ID,可能会有好几条记录,同一个客户,也可能会有好几条记录。
先分别创建客户数量和订单数量的计算字段,这里使用的是COUNTD()函数,代表统计不重复的客户数量和订单数量。
使用“客户数量”、“订单数量”计算字段以及“销售额”字段创建地区交叉表,如下图所示:
如果需要了解每个客户的平均销售额或者订单平均销售额,则有两种方法实现。一种是直接使用“销售额”除以“客户数量”或者“订单数量”即可,所得结果如下表:
另一种方法则是通过创建“LOD 客户销售额”以及“LOD 订单销售额”的LOD表达式实现。
首先,创建LOD表达式的计算字段,如下所示:
然后,对以上两个计算字段求平均值,即分别使用AVG()函数进行聚合,再将聚合后的结果置入交叉表,如:
从结果看,LOD表达式的结果与常规方式计算的客户平均销售额以及订单平均销售额的结果一致,说明此时的LOD表达式结果可以通过别的方式在视图中体现出来,结果如下:
但如果需要统计每个地区最小的客户销售额以及最小的订单销售额,则只能通过LOD表达式实现。具体方法就是,对之前创建的LOD表达式计算字段,通过MIN()函数取最小值,如:
将MIN()函数聚合后的结果置入交叉表,如下所示:
为校验得到的数据是否正确,可在视图中调出相关数据表格进行核对。这里以“LOD 客户销售额”字段进行排序,可以看销售额最小的客户是38.05,与交叉表中的数据(四舍五入)吻合,因此该LOD表达式的逻辑结果符合预期。
Include有个特性,就是如果视图中的详细级别程度有所改变,LOD表达式的结果也会跟着变化。比如上面的详细级别是“地区”,在向视图中添加了“类别”后,即数据颗粒度变高后,LOD表达式的结果会根据数据颗粒度情况进行同步改变。
(全文完)