Tableau 优课堂 | 第55课:聚合计算

published: 2023-05-04

欢迎观看由优阅达制作的【优课堂】系列视频。本节课,我们来学习:聚合计算。


聚合计算

你是否见过胶囊里出现了“聚合”(英文为 AGG)的字样?在 Tableau 中, “聚合”用以表示聚合已经在计算中执行了,无需再次执行。

Tableau 的聚合计算有两种,第一种是 AGG。

让我们创建一个利润率计算来看看效果。双击列上的空白区域,然后输入 SUM(利润)/SUM(销售额),单击回车。

请注意,此时生成的临时计算胶囊以“聚合”开头,而不是“总和”。


ATR 聚合

第二种聚合计算是 ATTR。

假设,需要分别对不同的维度值进行聚合。例如,我们想要根据“细分”字段中的“公司”维度值来计算销售额平均值,其他维度值则计算销售额中值。

右键单击“数据”窗格中空白区域,在弹出的菜单中选择“创建计算字段”。将此计算字段命名为“细分销售额”,然后在窗口中输入:

IF [细分] = "公司"

Then AVG([销售额])

ELSE MEDIAN([销售额])

END

此表达式的含义是,如果“细分市场”的维度值为“公司”时,就返回销售额的平均值,否则返回销售额的中值。

但是 Tableau 告诉我们此计算出现了一个错误:不能在“IF”表达式中混合聚合和非聚合比较或结果。

因此,需要先聚合细分市场。该怎么做呢?这里,我们使用 ATTR 来聚合“细分”,别忘了要加上括号。

IF ATTR ([细分]) = "公司"

Then AVG([销售额])

ELSE MEDIAN([销售额])

END

现在,我们看到计算是有效的,单击确定。

将创建好的计算字段 “细分销售额”拖拽至列,以将其添加到视图中。现在,我们可以看到:公司的平均销售额要比其他细分市场的销售额中值大得多。

由此可见,胶囊中显示的“聚合”字样,其实是在计算创建过程中被定义的。

请注意,ATTR 可用于检查数据子集中所有行的指定字段是否只有一个值。如果所选数据只有一个值,ATTR 将返回该值;如果该数据子集有多个值,则返回*号。

此外,ATTR 函数也常被用作逻辑测试:如果 Min=Max,则返回该值。

可以理解为:如果一个字段只有一个值,那么此字段的最大值和最小值都是这个值,所以 Min=Max;但如果此字段有多个值存在,则最小值不一定等于最大值。

请注意,所有这些聚合对于聚合维度都是有用的,可用于避免上述示例中所看到的计算报错。


聚合与记录级别的计算

让我们再看看在不同数据粒度(本例为订单 ID)中使用计算时,平均销售额有何区别。

将度量“销售额”拖放到列,右键单击此胶囊,在弹出的菜单中选择“度量”-“平均值”。

请注意,在示例数据源中,同一笔订单(ID)会有 1 条以上的记录,所以当前视图呈现的是每条记录的平均销售额,而不是每笔订单(ID)的平均销售额。

那么,如果希望知道每笔订单的平均销售额,该如何操作呢?

为此,我们再创建一个计算字段。右键单击”数据”窗格空白区域,在弹出的菜单中选择“创建计算字段”,并将其命名为 “每笔订单的销售额”,并键入如下公式:

SUM([销售额]) / COUNTD([订单ID])

这里,COUNTD 函数可用于计算去重以后的对象(本例为订单 ID)数量,即对象的不同计数。

而平均值是通过对一组数值求和,然后除以数值的个数来计算的,因此我们用总和销售额来除以订单号的不同计数。

现在,我们将把计算字段 “每笔订单的销售额” 拖放到列上。可以看到:这些值大于AVG (销售额) 的值,这是有意义的。因为计算返回订单级别的平均值,而非记录数级别的平均值。

以上就是关于「聚合计算」的全部内容。感谢观看本视频,更多 Tableau 学习资源,请关注微信公众号“优阅达大数据生态”。


更多相关信息,请访问专题页: Tableau使用入门教程