内容:

聚合函数

  • 版本 :2022.1 及更高版本

适用于: Tableau Desktop, Tableau Online, Tableau Public, Tableau Server

本文介绍 Tableau 中的聚合函数及其用途。它还演示如何使用示例创建聚合计算。

为何使用聚合函数

聚合函数允许您进行汇总或更改数据的粒度。

例如,您可能想要准确知道您的商店在特定年度有多少订单。您可以使用 COUNTD 函数对您的公司具有的准确订单数进行汇总,然后按年对可视化项进行细分。

计算可能如下所示:

COUNTD(Order ID)

可视化项可能如下所示:

Tableau 中的可用聚合函数

聚合和浮点算法:有些聚合的结果可能并非总是完全符合预期。例如,您可能发现 Sum 函数返回值 -1.42e-14 作为列数,而您知道求和结果应该正好为 0。出现这种情况的原因是电气电子工程师学会 (IEEE) 754 浮点标准要求数字以二进制格式存储,这意味着数字有时会以极高的精度级别舍入。您可以使用 ROUND 函数(请参见数字函数)或者通过将数字格式设置为显示较少小数位来消除这种潜在误差。

函数

语法

定义

ATTR

ATTR(expression)

如果它的所有行都有一个值,则返回该表达式的值。否则返回星号。会忽略 Null 值。

AVG

AVG(expression)

返回表达式中所有值的平均值。AVG 只能用于数字字段。会忽略 Null 值。

COLLECT

COLLECT (spatial)

将参数字段中的值组合在一起的聚合计算。会忽略 Null 值。

注意:COLLECT 函数只能用于空间字段。

示例:

COLLECT ([Geometry])

CORR

CORR(expression 1, expression2)

返回两个表达式的皮尔森相关系数。

皮尔森相关系数衡量两个变量之间的线性关系。结果范围为 -1 至 +1(包括 -1 和 +1),其中 1 表示精确的正向线性关系,比如一个变量中的正向更改即表示另一个变量中对应量级的正向更改,0 表示方差之间没有线性关系,而 −1 表示精确的反向关系。

CORR 可用于以下数据源:

  • Tableau 数据提取(您可以从任何数据源中创建数据提取)

  • Cloudera Hive

  • EXASolution

  • Firebird(版本 3.0 及更高版本)

  • Google BigQuery

  • Hortonworks Hadoop Hive

  • IBM PDA (Netezza)

  • Oracle

  • PostgreSQL

  • Presto

  • SybaseIQ

  • Teradata

  • Vertica

对于其他数据源,请考虑提取数据或使用 WINDOW_CORR。请参见表计算函数

注意:CORR 结果的平方等于线性趋势线模型的 R 平方值。请参见趋势线模型术语

示例:

您可以使用 CORR 在解聚散点图中呈现关联。实现此目的的方式是使用表范围详细级别表达式。例如:

{CORR(Sales, Profit)}

借助详细级别表达式,关联将在所有行上运行。如果您使用像 CORR(Sales, Profit)(不带两边的方括号可使其成为详细级别表达式)这样的公式,视图将显示散点图中每个单独的点与其他每个点(未定义)的关联。

请参见表范围

COUNT

COUNT(expression)

返回组中的项目数。不对 Null 值计数。

COUNTD

COUNTD(expression)

返回组中不同项目的数量。不对 Null 值计数。此函数在下列情况下不可用:在 Tableau Desktop 8.2 之前创建的使用 Microsoft Excel 或文本文件数据源的工作簿、使用旧版连接的工作簿和使用 Microsoft Access 数据源的工作簿。将数据提取到数据提取文件以使用此函数。请参见提取数据

COVAR

COVAR(expression 1, expression2)

返回两个表达式的样本协方差

协方差对两个变量的共同变化方式进行量化。正协方差指明两个变量趋向于向同一方向移动,平均来说,即一个变量的较大值趋向于与另一个变量的较大值对应。样本协方差使用非空数据点的数量 n - 1 来规范化协方差计算,而不是使用总体协方差(可用于 COVARP 函数)所使用的 n。当数据是用于估算较大总体的协方差的随机样本时,则样本协方差是合适的选择。

COVAR 可用于以下数据源:

  • Tableau 数据提取(您可以从任何数据源中创建数据提取)

  • Cloudera Hive

  • EXASolution

  • Firebird(版本 3.0 及更高版本)

  • Google BigQuery

  • Hortonworks Hadoop Hive

  • IBM PDA (Netezza)

  • Oracle

  • PostgreSQL

  • Presto

  • SybaseIQ

  • Teradata

  • Vertica

对于其他数据源,请考虑提取数据或使用 WINDOW_COVAR。请参见表计算函数

如果 expression1 和 expression2 相同 — 例如,COVAR([profit], [profit]) — 则 COVAR 将返回一个值,指明值分布的广泛程度。

注意:COVAR(X, X) 的值等于 VAR(X) 的值,也等于 STDEV(X)^2 的值。

示例:

以下公式返回“Sales”“Profit”的样本协方差。

COVAR([Sales], [Profit])

COVARP

COVARP(expression 1, expression2)

返回两个表达式的总体协方差

协方差对两个变量的共同变化方式进行量化。正协方差指明两个变量趋向于向同一方向移动,平均来说,即一个变量的较大值趋向于与另一个变量的较大值对应。总体协方差等于样本协方差除以 (n-1)/n,其中 n 是非空数据点的总数。如果存在可用于所有相关项的数据,则总体协方差是合适的选择,与之相反,在只有随机项子集的情况下,样本协方差(及 COVAR 函数)较为适合。

COVARP 可用于以下数据源:

  • Tableau 数据提取(您可以从任何数据源中创建数据提取)

  • Cloudera Hive

  • EXASolution

  • Firebird(版本 3.0 及更高版本)

  • Google BigQuery

  • Hortonworks Hadoop Hive

  • IBM PDA (Netezza)

  • Oracle

  • PostgreSQL

  • Presto

  • SybaseIQ

  • Teradata

  • Vertica

对于其他数据源,请考虑提取数据或使用 WINDOW_COVARP。请参见表计算函数

如果 expression1 和 expression2 相同 — 例如,COVARP([profit], [profit]) — 则 COVARP 将返回一个值,指明值分布的广泛程度。

注意:COVARP(X, X) 的值等于 VARP(X) 的值,也等于 STDEVP(X)^2 的值。

示例:

以下公式返回“Sales”“Profit”的总体协方差。

COVARP([Sales], [Profit])

MAX

MAX(expression)

返回表达式在所有记录中的最大值。如果表达式为字符串值,则此函数返回按字母顺序定义的最后一个值。

MEDIAN

MEDIAN(expression)

返回表达式在所有记录中的中位数。中位数只能用于数字字段。会忽略 Null 值。此函数不适用于在 Tableau Desktop 8.2 版之前创建或使用旧版连接的工作簿。它也不适用于使用以下任何数据源的连接:

  • 访问

  • Amazon Redshift

  • Cloudera Hadoop

  • HP Vertica

  • IBM DB2

  • IBM PDA (Netezza)

  • Microsoft SQL Server

  • MySQL

  • SAP HANA

  • Teradata

对于其他数据源类型,可以将数据提取到数据提取文件以使用此函数。请参见提取数据

MIN

MIN(expression)

返回表达式在所有记录中的最小值。如果表达式为字符串值,则此函数返回按字母顺序定义的第一个值。

PERCENTILE

PERCENTILE(expression, number)

从给定表达式返回与指定数字对应的百分位处的值。数字必须介于 0 到 1 之间(含 0 和 1),例如 0.66,并且必须是数值常量。

此函数可用于以下数据源。

  • 非旧版 Microsoft Excel 和文本文件连接。

  • 数据提取和纯数据提取数据源类型(例如 Google Analytics、OData 或 Salesforce)。

  • Sybase IQ 15.1 及更高版本的数据源。

  • Oracle 10 及更高版本的数据源。

  • Cloudera Hive 和 Hortonworks Hadoop Hive 数据源。

  • EXASolution 4.2 及更高版本的数据源。

对于其他数据源类型,可以将数据提取到数据提取文件以使用此函数。请参见提取数据

STDEV

STDEV(expression)

基于群体样本返回给定表达式中所有值的统计标准差。

STDEVP

STDEVP(expression)

基于有偏差群体返回给定表达式中所有值的统计标准差。

SUM

SUM(expression)

返回表达式中所有值的总计。SUM 只能用于数字字段。会忽略 Null 值。

VAR

VAR(expression)

基于群体样本返回给定表达式中所有值的统计方差。

VARP

VARP(expression)

对整个群体返回给定表达式中所有值的统计方差。


创建聚合计算

按照下面的步骤进行操作以了解如何创建聚合计算。

  1. 在 Tableau Desktop 中,连接到 Tableau 附带的“Sample - Superstore”已保存数据源。

  2. 导航到工作表,并选择“分析”>“创建计算字段”

  3. 在打开的计算编辑器中,执行以下操作:

    新的聚合计算将出现在“数据”窗格中的“度量”下。就像其他字段一样,您可以在一个或多个可视化项中使用该字段。

    注意:聚合计算始终为度量。

    当将“Margin”(利润)放在工作表中的功能区或卡上时,它的名称将更改为“AGG(Margin)”,表示它是聚合计算,并且无法进一步聚合。

    描述将聚合计算放在功能区上时所发生情况的图形。字段显示 AGG 前缀。

    • 将计算字段命名为“Margin”(利润)

    • 输入以下公式:

      IIF(SUM([Sales]) !=0, SUM([Profit])/SUM([Sales]), 0)

      注意:您可以使用函数引用来查找聚合函数和其他函数(如此示例中的逻辑 IIF 函数),并将其添加到计算公式。有关详细信息,请参见在计算编辑器中使用函数引用

    • 完成后,单击“确定”

聚合计算的规则

适用于聚合计算的规则如下:

  • 任何聚合计算中不得同时包括聚合值和解聚值。例如,SUM(Price)*[Items] 不是有效的表达式,因为 SUM(Price) 已聚合,而 Items 则没有。不过,SUM(Price*Items) 和 SUM(Price)*SUM(Items) 均有效。

  • 表达式中的常量可根据情况充当聚合值或解聚值。例如:SUM(Price*7) 和 SUM(Price)*7 均为有效的表达式。

  • 所有函数都可用聚合值进行计算。但是,任何给定函数的参数必须或者全部聚合,或者全部解聚。例如:MAX(SUM(Sales),Profit) 不是有效的表达式,因为 Sales 已聚合,而 Profit 则没有。不过,MAX(SUM(Sales),SUM(Profit)) 为有效的表达式。

  • 聚合计算的结果始终为度量。

  • 与预定义聚合一样,聚合计算可正确地进行总计计算。有关详细信息,请参见“总计”。