tableau-行计算、视图计算、表计算

  • Post author:
  • Post category:其他



Tableau的表计算分为几类,重点是前面三类


  • 索引排序函数:index()、size()、first()、last() ——这四个不需要参数; rank()及延伸函数,如rank_dense(),rank_modified()等;
  • 移动计算函数:running_x ,比如 running_sum, running_avg, running_max等;
  • 范围计算函数:window_x,比如window_sum,window_avg,window_max,等
  • R语言相关计算函数:script_bool()等(我没用过)。

1、聚合计算与表计算

sum() 是聚合计算,是基于数据源的计算,它的参数就是数据源的字段,比如 sum([sales]),它代表把数据源的每一行的数据都对[sales]字段执行累加计算;

而widown_sum(), running_sum(), total() 都是表计算函数,表计算的特征之一是基于视图中聚合数据的二次聚合计算,因此括号中的参数必须是聚合,比如说 total( sum([sales]) )。

  • 聚合计算:对数据源行级别数据的聚合
  • 表计算:对视图中数据聚合结果的二次聚合

2、total(expression)

total()是为每个分区返回同一个结果,合计百分比 表计算 : SUM([数量]) / TOTAL(SUM([数量]))


​​​​​​

3、 running_sum(expression)递归计算

对于同一个分区的不同行,running_sum()返回了不同的数值,如果要在视图中计算随着时间增长的累计利润,或者累计会员数量,这种需求,只能通过表计算来完成。

4、window_sum(expression,[start,end])

在手动表计算中,window_XXX函数是使用最多的,汇总计算、移动平均都是特殊情形下的窗口计算。窗口计算的重要特点是,默认有三个参数,分别代表聚合表达式、起始位置、结束位置。

  • total 表计算相当于没有指定起止位置的window-sum窗口计算;
  • running-sum表计算,即于从开始到当前位置的window-sum窗口计算;
  • 移动平均,即制定了起止位置的的window-avg窗口计算。

完整的函数是window_sum(expression,[start,end] ),默认的起止位置用first和last代替,可以省略。

  • first(),返回当前行到分区中第一行的偏移行数。
  • last(),返回当前行到分区中最后一行的偏移行数。

first和last显示的是首行、尾行和相当于当前位置的偏移;如果是当前行,first和last都会返回的是0 。为了方便对比,我们和另外两个表计算 一起对比看看,

  • size(),返回分区的行数;有点像total+count+分区,计算分区中行的计数。
  • index(),返回分区的当前行的索引,与任何数值无关。

这四个表计算都不需要参数,完全依靠分区和寻址来控制。比如下图,index默认为表(向下),其他我们修改为区(向下),我们以类别为分区,看一下结果。 first和last正好是相对应的。

回来说window_sum(),没有起止范围的window_sum(),同一个分区情况下,结果和total()是一样的。

WINDOW_SUM(SUM([数量]),FIRST(),last())  = TOTAL(SUM([数量]))

我们写一个新的表计算,把last()改为0,绝对值0代表当前行的索引,也就是如下:

WINDOW_SUM(SUM([数量]),FIRST(), 0 )

这个的意思是说,返回分区中,从第一行到当前行的总计求和。我们看一下结果:

上面红色部分是到当前行的window_sum(),你也许会发现,这个结果,和running_sum()的结果是一样的。

从分区第一行,到当前行的总计求和(累计求和)

WINDOW_SUM(SUM([数量]),FIRST(), 0 )  =  RUNNING_SUM(SUM([数量]))

换一个需求,如果我们要计算从当前行到最后一行的总计呢?那就是把first()改为0,以last结束,相当于runnig_sum()汇总+指定倒序运算。我们可以看一下对比图。

WINDOW_SUM(SUM([数量]),0,LAST())

我们看一下上面的结果,最后一行,每一行的结果,返回的是当前行到最后一行last()的总计求和。



版权声明:本文为weixin_41668007原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。