最近由于工作需要不断在学习Tableau,因此把学习过程中遇到的坑记录下来,给自己巩固的同时也让别人能少走弯路:
①时间数据类型上的坑:
情景一:同样是选择时间颗粒,为什么两个都样显示是周数的但实际结果却不同
解释:通过点击详细数据可以看出左图称为方式一,右图称为方式二,方式一中的周选择方式仅关注周,不带任何其他信息,即1996/1/5和1997/1/7会被当成是同样的“周一”。而方式二的周选择方式会包含年的维度,即1996/1/5和1997/1/7会被分开成两个周。
从函数上来看,方式一的函数是DATEPART(),方式二的函数叫DATETRUNC()
DATEPART() 以整数形式返回指定日期的一部分,该部分由date part定义。如果省略start_of_week,则周起始日由为数据源配置的起始日确定。示例:DATEPART(’month‘,#2004-04-15#)=4
从上述引用信息看出,该函数直接把周抠出,其他信息舍弃。
DATETRUNC() 按date_part所指定的准确度截断指定日期并返回新日期。如果省略start_of_week,则周起始日由为数据源配置的起始日确定。示例:DATETRUNC(’quarter‘,’#2004-08-15#‘)= 2004-07-01 12:00:00AM
从上述引用信息看出,该函数仅是对日期进行重新划定,保留年月日等信息。
至此上述两个函数差异总结完毕。
②关于表计算中的横穿,特定维度中的理解
情景二:在Tableau表计算的时候对选项总是不确定,只能选了之后看结果,然后再验证,心里总是有点慌。
点击特定维度你会发现没有变化,那么这个特定维度的选项意义在哪?思考一下既然这个维度可以选择特定,那很自然会想到会有一个不特定,不特定就是指随着一些改动而变化。
通过上图可见,选择特定之后改变季度和年的顺序,特别地需要注意,在表计算选项卡里面,"Date 年"和"Date 个季度"是可以调整上下顺序的。当你是默认“表(横穿)”的时候,你把“季度”改在前面,“年”改在后面的时候,下面相应顺序也会自动调过来。
理解了上述区别,就能理解表横穿和特定维度的区别了~
③几个求和函数的区别-Window_sum,running_sum,total
Window_sum():返回窗口表达式的总和。窗口定义为与当前行的偏移。使用FIRST()+n和LAST()-n表示与分区中的第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
使用场景:用于移动平均,移动求和,移动最大值,移动最小值。
running_sum():返回给定表达式从分区中第一行到当前行的运行总计。
使用场景:表计算中的汇总即利用running_sum,需要注意的是running_sum并不能调整计算窗口的大小,即每个值都是从当前行到第一行的汇总合计。
total():组成分区(视图)的所有数据行的avg(利润)
从灵活性来看,window_sum可以完整覆盖running_sum和total()的功能。
①window_sum([表达式],first(),0) = running_sum([表达式])
②window_sum([表达式],first(),last())=total([表达式])
特别地,windowsum还可以代替vlookup中的位置功能,例如vlookup([表达式],-1) = window_sum([表达式],-1,-1)