“Understand Aggregations”
什么是聚合?
按照统计术语来解释,聚合就是将数据从较低级别也就是从较低的Data Hierarchy,通过计算汇总到较高级别的过程。 比如每个客户的每笔交易,就是一个较低级别,那么我们通过相加,得到一个客户的所有交易额。这个过程就叫做汇总。 这个过程你再熟悉不过,但是我要把这个过程分拆来看。
第一个部分就是数据层级的变化:层级从低级走向高级。 这个部分的理解是基于我们之前对数据层级的深入学习已经可以熟练掌握的概念。
第二个部分就是聚合的实现: 低层级级往往是很多行数据,但是到了高层级就只剩下一行数据。 那这一行数据怎么算可是有很多种方法。 我在下边列出一些我们在日常工作当中最常用的聚合计算方式。 我在这里边特别强调了一个词就是非空值。因为Tableau的聚合函数是不把空值考虑进去的。
简单的聚合函数
SUM( ) 求和
AVERAGE( ) 取非空值的平均数
COUNT( ) 计算非空值有多少个
COUNT DISTINCT( ) 计算不重复的非空值有多少个
MIN( ) 需要聚合的数值当中,最小值是是多少
MAX( ) 最大值
Tableaau 辅助计算 Table_Name(Count)
更复杂的聚合函数
中位数函数 MEDIAN():找出一组数值的中位数
中位数是一种非常重要的聚合函数. 它的这个名字起的非常好. 尤其是这个位字. 因为它准确的反应了中位数的计算方法. 如果你回忆不起来中位数是怎么算的,就再好好看看它的名字.
中位数的出现主要是解决在分布不均的数据中平均值不好用的问题. 假设100个老板姓和一个马爸爸, 平均下来 每个人财富都好几个亿. 但是这能代表这101个人的平均水平吗? 显然不能. 因此我们需要一个更科学的方法来计算. 中位数是将这101个人按照财富排好序, 然后找到最中间的那个, 101的最中间就是51, 它前边有50个人,后边有50个人,它搞好在最中间. 然后我们再看这个人的财富是多少. 用它的财富来代表这101个人的群体的平均财富水平.
在实际项目中我们应该用什么?
答案是看情况. 在实际的项目中, 一般要首先看下整个数据的分布情况, 建一个bar chart排个序, 先看看整个数据的分布均匀不均匀. 如果不均匀, 那么无脑上中位数, 平均值肯定不行.
标准差函数 STDEV:测量数据分布的离散程度
STDEV是英文Standard Deviation标准差的缩写. Deviation是数据集里每一个数举例平均值的差, 如果数据集里的所有数都是一个值, 那标准差就是0, 也就是没差, 没有区别. 如果数据集里一个0.1 另一个一万亿, 还一个1亿, 那标准差就老大了. 代表数和数之间差别巨大. 我在这里不想学术性的给你讲标准差的定义和计算方法, 你在维基百科里自己就能查到. 我接下来讲讲我是如何在具体项目里边使用这个标注差函数的.
我之前做过一个项目, 这个项目的目的就是根据一家店的周平均销售额来计算一家店从店长到店员需要多少人. 显然销售额越多需要的店员也就越多. 我们使用过去12周也就是差不多将近三个月的数据来确保数据足够新. 但是在实际操作中就遇到了这么一个问题.
有些店可能因为装修, 或者其他原因没有销售额, 如果我们把那一天算进去,就会导致那一周的销售额显著的低于其他周,毕竟你开六天别人开七天. 而有的时候,由于公共假期, 反而有些店的销售额会特别高. 想想一下开在避暑圣地的店遇到夏天的假期, 那销售额分分钟拉满. 但是随后假期一过,销售额又马上下来了. 如果你把生意最好的那几周算进去,就会导致过高的估计店员的人数反而后边淡季的时候人员过多. 为了识别出这些情况, 就需要使用标准差函数来计算这12周的标准差, 如果标准差过大,就说明在12周当中, 有些周出现了比平时过高或者过低的销售额, 我们需要将这些周排除在周平均销售额的计算.
ATTR(属性) 我管他叫唯一函数
对,就是那个 Baby, 你就是我的唯一的唯一:如果一列当中所有的值相同, 换句话说这一列的值是唯一的,则返回该值;如果不唯一则返回星号(*)
ATTR是一个初学者看见就头大的函数因为它不常见. 换句话说, 这是个Tableau独有的函数. 不跟你说你知道么
假设我们有一个column, 这个column叫做[city].
现在有两种情况, 一种情况是[city]这个column里的值全是一个城市, 比如New York. 那么ATTR([city]) 返回的值就是New York. 如果出了New York, 这一列还出现其他别的值, 那么这个ATTR([city]) 就会返回星号*, 你可以记成花心. 毕竟你不是唯一对吧.
ATTR( ) 到底是干什么用的?
Attr( )最大的作用就是避免在混合使用聚合和非聚合计算时产生报错. 那么接着问题又来了, 什么是混合使用聚合和非聚合啊?
同学你问的问题非常好, 这就是我们第三课的内容