15大LOD之Window、Running、Total 、Include、Exclude、Fixed(举例说明)

以销售额的总和为例,解释Window、Running、Total、Include、Exclude、Fixed函数

第一列【Sales】,表示的即使以Market、Country为维度,计算销售额的总和

第二列【WINDOW_SUM】,使用了WINDOW_SUM函数,使用方法:

WINDOW_SUM( SUM( [Sales] ), -1, 0 )

WINDOW_SUM( 表达式, -n, m )

【-n】:当前行开始的第n行

【m】:当前行的第m行

例子中的-1和0,指的就是当前一行到当前行的SUM(Sales)的总和

第三列【RUNNING_SUM】,使用RUNNING_SUM函数,使用方法:

RUNNING_SUM( SUM( [Sales] ))

指的就是第一行到当前行的SUM(Sales)的总和

第三列【Total】,使用Total函数,使用方法:

TOTAL( SUM( [Sales] ) )

指的是当前所有行的总计,但Total依旧受限于筛选器,计算的是筛选器范围内的总和

可以看到不同的筛选器范围内,TOTAL计算的总和范围是不一样的

第四列【EXCLUDE】,使用的是EXCLUDE函数,使用方法:

{ EXCLUDE [Market] : SUM([Sales]) }

指的是在筛选器范围内,排除某一个维度。

我们在这张表里面,使用了【Market】、【Country】维度,其中【Market】比【Country】的维度范围是更大一点的。

如果我们想要在每一行计算【Market】为维度的总和,而不想受限制与【Country】维度,就可以使用Exclude。



 

如图所示,【Sales】列计算的是每个market每个country的销售总额,我们在【Exclude】列计算了每一个market的销售总和

第五列【INCLUDE】, 使用的是EXCLUDE函数,使用方法:

{ INCLUDE [Customer Name] : MAX([Sales]) }

指的是在筛选器范围内,使用指定的维度进行计算。

我们在这张表里面,使用了【Market】、【Country】维度。

如果我们想要在计算每位客户的最大订单消费额,就可以使用INCLUDE函数。

TIP:需要注意的是,我们需要在这里选择【最大值】,显示的结果就是每个Country客户的最大销售额

第六列FIXED, 使用的是FIXED函数,使用方法:

{ FIXED : MAX([Sales]) }

指的是不受筛选器的限制,使用指定的维度进行计算。

我们在这张表里面,使用了【Market】、【Country】维度。

如果我们想要在知道,所有地区的销售额是多少,就可以使用FIXED函数。

 从这两张对比图可以看出,虽然我们筛选了不同的地区,但总的销售额是不变的,计算的就是所有地区的销售额总和,但include和exclude都受到了筛选器的影响。

在此处,讲解一个fixed的特殊情况。

当我们想要计算在所有地区的所有客户中,最大的消费金额,就需要用到FIXED的嵌套。

{ FIXED: max({ FIXED [Customer ID]:SUM([Sales]) }) }

为什么要再嵌套一层FIXED?

第一层FIXED: { FIXED [Customer ID]:SUM([Sales]) },它的计算结果是,每一位客户的消费金额,如下图表格所示:

 此时我们去求最大值,相当于在这张表格前面套上了一个MAX函数,也就是:MAX({ FIXED [Customer ID]:SUM([Sales]) })

此时,已经不是FIXED的层级,而是MAX函数的层级,已经受到了维度及筛选器的限制。

可以看到,每个Market下的计算结果是不一样的。

因此,如果我们想要脱离维度以及筛选器的限制,需要再嵌套一层FIXED,也就是:{ FIXED: max({ FIXED [Customer ID]:SUM([Sales]) }) }

​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值