计算:
- 常规计算:向数据源发出计算请求,数据源计算后,tableau接收计算结果集。比如销售-成本
- 表计算:基于返回的结果集的二次分析计算。原数据“group by”后对聚合的数据的各种分析,tableau称为"表计算"
表计算
参考了https://zhuanlan.zhihu.com/p/60641444
本数据:是tableau desktop的已保存数据:“世界指标”
这是一个聚合表。以地区+年份分组: 求列“人均医疗”的和。
表计算就是真对这个聚合表中的“聚合的数据”进行二次分析计算。
- 右键单击“总和(人均医疗)”,选择“编辑表计算”。确定计算类型:“排序”
- 确定“计算依据”:“特定维度”。特定维度就是指参与了数据划分的“维度”。
- ☑️的"维度": 对数据进行第2次分组。
- 没有☑️的“维度”,对数据进行第一次分组。
- 对第二次分组的数据,用已经选择好的计算类型进行计算。第一次分组只是隔离,第二次分组的数据,才会参与二次运算。
本例子比如:
计算类型:排序(降序)
计算依据:特定维度:☑️区域+☑️年份
所以,每行记录都被单独的分出来,然后对他们按照数值大小降序排序--不是真的排序,而是用数字代表排序的顺序。
还是本例子,比如:
计算类型:排序(降序)
计算依据:特定维度:☑️区年份
- 首先,把数据按照区域划分开。
- 然后,每个区域的数据再按照“年份”二次划分。
- 最后,对二次划分的数据,按照降序排序。因为是降序,2011年数据数值最大,所以2011年数据赋予“数号:1”
还是本例子,如果:
计算类型:排序(降序)
计算依据:特定维度:☑️区域
- 首先,把数据按照“年份”进行一轮划分。即每年的记录分到一组中,比如2000年的记录算一组。
- 然后,每组数据按照“区域”进行而论划分
- 最后,对每条数据进行排序(降序)。
使用参数来改变字段
1.创建参数
2.创建计算字段
3.在图表上使用计算字段
4.使用“参数控件”,并可以设置它的格式。
这是创建计算字段的图。
分析客户在6个月之内,进行第2次购买,未购买,6个月之后购买的比率
本题思路和步骤:
- 创建首次购买的计算函数
- {FIXED [Customer ID]: MIN([Order Date])}
- ⚠️这里的fixed相当于MySQL的group by后使用聚合函数
- 创建第2次购买的计算函数
-
{FIXED [Customer ID] : MIN(IF [Order Date] > [ First Order Date]
THEN [Order Date]
END)}
-
- 创建上面2者的差值的计算函数:"Repeat Purchasing"
-
IF [Months to Second Purcase] >= 6 then "More than 6 months" ELSEIF [Months to Second Purcase] < 6 then "Within 6 month" ELSE "No second purchase" end
-
- 创建一个文件夹,把这3个计算函数放到一起。
- 把他们放到图表的列上或行上,显示效果不同。
- 新建工作表,行为"Repeat Purchasing", 列为“Customer ID”并选择它的属性为“计数”+快速表计算->"合计百分比"
详细级别表达式-分组表达式 Level of Detail Expressions(LOD)
{FIXED [订单 ID]: SUM([利润])}
这是一个详细级别表达式:它由fix关键字和聚合函数sum组成。
详细级别表达式的关键字有3种:
- fixed: 只按照表达式内的字段来分组
- include: 除了按照表达式内的字段分组,还会考虑到视图中的维度字段来分组。
- exclude:排除指定的维度。
fixed和include不同的用处:
{FIXED [订单 ID]: SUM([利润])}
- 如果id是唯一的,那么fixed和include会得出相同的结果。
-
如果id不是唯一的,就用include.
- 不唯一是指:一个id有多条记录。
上面的例子中,如果表格内有相同的