tableau-行计算、视图计算、表计算
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_sum(expression,[start,end] ),默认的起止位置用first和last代替,可以省略。
- first(),返回当前行到分区中第一行的偏移行数。
- last(),返回当前行到分区中最后一行的偏移行数
- size(),返回分区的行数;有点像total+count+分区,计算分区中行的计数。
- index(),返回分区的当前行的索引,与任何数值无关。
- WINDOW_SUM(SUM([数量]),FIRST(),last()) = TOTAL(SUM([数量]))
- WINDOW_SUM(SUM([数量]),FIRST(), 0 )如下图