Tableau 函数(按类别)
此参考中的 Tableau 函数按类别组织。单击类别可浏览其函数。或者,按 Ctrl+F(在 Mac 上按 Command-F)打开搜索框,您可以使用该搜索框在页面中搜索特定函数。
ABS
语法 | ABS(number) |
输出 | 数字(正数) |
定义 | 返回给定 <number> 的绝对值。 |
示例 | ABS(-7) = 7 第二个示例返回“Budget Variance”(预算差异)字段中包含的所有数字的绝对值。 |
说明 | 另请参见 SIGN 。 |
ACOS
语法 | ACOS(number) |
输出 | 数字(以弧度表示的角度) |
定义 | 返回给定 <number> 的反余弦(角度)。 |
示例 | ACOS(-1) = 3.14159265358979 |
说明 | 反函数 COS 以弧度为单位的角度作为参数,并返回余弦值。 |
ASIN
语法 | ASIN(number) |
输出 | 数字(以弧度表示的角度) |
定义 | 返回给定 <number> 的反正弦(角度)。 |
示例 | ASIN(1) = 1.5707963267949 |
说明 | 反函数 SIN 以弧度为单位的角度作为参数,并返回正弦值。 |
ATAN
语法 | ATAN(number) |
输出 | 数字(以弧度表示的角度) |
定义 | 返回给定 <number> 的反正切(角度)。 |
示例 | ATAN(180) = 1.5652408283942 |
说明 | 反函数 |
ATAN2
语法 | ATAN2(y number, x number) |
输出 | 数字(以弧度表示的角度) |
定义 | 返回两个数字(x 和 y)之间的反正切(角度)。结果以弧度表示。 |
示例 | ATAN2(2, 1) = 1.10714871779409 |
说明 | 另请参见 ATAN 、TAN 和 COT 。 |
CEILING
语法 | CEILING(number) |
输出 | 整数 |
定义 | 将 <number> 舍入为值相等或更大的最近整数。 |
示例 | CEILING(2.1) = 3 |
说明 | 另请参见 FLOOR 和 ROUND 。 |
数据库限制 |
|
COS
语法 | COS(number) number 参数是以弧度表示的角度。 |
输出 | 数字 |
定义 | 返回角度的余弦。 |
示例 | COS(PI( ) /4) = 0.707106781186548 |
说明 | 反函数 |
COT
语法 | COT(number) number 参数是以弧度表示的角度。 |
输出 | 数字 |
定义 | 返回角度的余切。 |
示例 | COT(PI( ) /4) = 1 |
说明 | 另请参见 ATAN 、TAN 和 PI 。若要将角度从度数转换为弧度,请使用 RADIANS 。 |
DEGREES
语法 | DEGREES(number) number 参数是以弧度表示的角度。 |
输出 | 数字(度) |
定义 | 将以弧度表示的角度转换为度数。 |
示例 | DEGREES(PI( )/4) = 45.0 |
说明 | 反函数 另请参见 |
DIV
语法 | DIV(integer1, integer2) |
输出 | 整数 |
定义 | 返回将 <integer1> 除以 <integer2> 的除法运算的整数部分。 |
示例 | DIV(11,2) = 5 |
EXP
语法 | EXP(number) |
输出 | 数字 |
定义 | 返回 e 的给定 <number> 次幂。 |
示例 | EXP(2) = 7.389 |
说明 | 另请参见 LN 。 |
FLOOR
语法 | FLOOR(number) |
输出 | 整数 |
定义 | 将数字舍入为值相等或更小的最近 <number> 。 |
示例 | FLOOR(7.9) = 7 |
说明 | 另请参见 CEILING 和 ROUND 。 |
数据库限制 |
|
HEXBINX
语法 | HEXBINX(number, number) |
输出 | 数字 |
定义 | 将 x、y 坐标映射到最接近的六边形数据桶的 x 坐标。数据桶的边长为 1,因此,可能需要相应地缩放输入。 |
示例 | HEXBINX([Longitude]*2.5, [Latitude]*2.5) |
说明 | HEXBINX 和 HEXBINY 是用于六边形数据桶的分桶和标绘函数。六边形数据桶是对 x/y 平面(例如地图)中的数据进行可视化的有效而简洁的选项。由于数据桶是六边形的,因此每个数据桶都非常近似于一个圆,并最大程度地减少了从数据点到数据桶中心的距离变化。这使得聚类分析更加准确并且能提供有用的信息。 |
HEXBINY
语法 | HEXBINY(number, number) |
输出 | 数字 |
定义 | 将 x、y 坐标映射到最接近的六边形数据桶的 y 坐标。数据桶的边长为 1,因此,可能需要相应地缩放输入。 |
示例 | HEXBINY([Longitude]*2.5, [Latitude]*2.5) |
说明 | 另请参见 HEXBINX 。 |
LN
语法 | LN(number) |
输出 | 数字 如果参数小于或等于零,则输出为 |
定义 | 返回 <number> 的自然对数。 |
示例 | LN(50) = 3.912023005 |
说明 | 另请参见 EXP 和 LOG 。 |
LOG
语法 | LOG(number, [base]) 如果可选的 base 参数不存在,则使用底数 10。 |
输出 | 数字 |
定义 | 返回数字以给定底数为底的对数。 |
示例 | LOG(16,4) = 2 |
说明 | 另请参见 POWER LN 。 |
MAX
语法 | MAX(expression) 或 MAX(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最大值。
|
示例 | MAX(4,7) = 7 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
MIN
语法 | MIN(expression) 或 MIN(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最小值。
|
示例 | MIN(4,7) = 4 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
PI
语法 | PI() |
输出 | 数字 |
定义 | 返回数字常量 pi:3.14159。 |
示例 | PI() = 3.14159 |
说明 | 对于以弧度为输入的三角函数非常有用。另请参见 RADIANS 。 |
POWER
语法 | POWER(number, power) |
输出 | 数字 |
定义 | 计算 <number> 的指定次 <power> 。 |
示例 | POWER(5,3) = 125 |
说明 | 也可以使用 ^ 符号,例如 5^3 = POWER(5,3) = 125 |
RADIANS
语法 | RADIANS(number) |
输出 | 数字(以弧度表示的角度) |
定义 | 将给定 <number> 从度数转换为弧度。 |
示例 | RADIANS(180) = 3.14159 |
说明 | 反函数 DEGREES 获取以弧度为单位的角度,并返回以度为单位的角度。 |
ROUND
语法 | ROUND(number, [decimals]) |
输出 | 数字 |
定义 | 将
|
示例 | ROUND(1/3, 2) = 0.33 |
说明 | 某些数据库(例如 SQL Server)允许指定负长度,其中 -1 将数字舍入为 10 的倍数,-2 舍入为 100 的倍数,依此类推。此功能并不适用于所有数据库。例如,Excel 和 Access 不具备此功能。 提示:由于 |
SIGN
语法 | SIGN(number) |
输出 | -1、0 或 1 |
定义 | 返回 <number> 的符号:可能的返回值为:在数字为负时为 -1,在数字为零时为 0,在数字为正时为 1。 |
示例 | SIGN(AVG(Profit)) = -1 |
说明 | 另请参见 ABS 。 |
SIN
语法 | SIN(number) number 参数是以弧度表示的角度。 |
输出 | 数字 |
定义 | 返回角度的正弦。 |
示例 | SIN(0) = 1.0 |
说明 | 反函数 |
SQRT
语法 | SQRT(number) |
输出 | 数字 |
定义 | 返回 <number> 的平方根。 |
示例 | SQRT(25) = 5 |
说明 | 另请参见 SQUARE 。 |
SQUARE
语法 | SQUARE(number) |
输出 | 数字 |
定义 | 返回 <number> 的平方。 |
示例 | SQUARE(5) = 25 |
说明 | 另请参见 SQRT 和 POWER 。 |
TAN
语法 | TAN(number) number 参数是以弧度表示的角度。 |
输出 | 数字 |
定义 | 返回角度的正切。 |
示例 | TAN(PI ( )/4) = 1.0 |
说明 | 另请参见 ATAN 、ATAN2 、COT 和 PI 。若要将角度从度数转换为弧度,请使用 RADIANS 。 |
ZN
语法 | ZN(expression) |
输出 | 任意,或 o |
定义 | 如果 使用此函数将 null 值替换为零。 |
示例 | ZN(Grade) = 0 |
说明 | 当在计算中使用可能包含 null 的字段时,这是一个非常有用的函数。用 ZN 封装字段可以防止用 null 计算导致的错误。 |
ASCII
语法 | ASCII(string) |
输出 | 数字 |
定义 | 返回 <string> 的第一个字符的 ASCII 码。 |
示例 | ASCII('A') = 65 |
说明 | 这是 CHAR 函数的反函数。 |
CHAR
语法 | CHAR(number) |
输出 | 字符串 |
定义 | 返回通过 ASCII 代码 <number> 编码的字符。 |
示例 | CHAR(65) = 'A' |
说明 | 这是 ASCII 函数的反函数。 |
CONTAINS
语法 | CONTAINS(string, substring) |
输出 | 布尔值 |
定义 | 如果给定字符串包含指定子字符串,则返回 true。 |
示例 | CONTAINS("Calculation", "alcu") = true |
说明 | 另请参见逻辑函数(链接在新窗口中打开) IN 以及附加函数文档(链接在新窗口中打开)中支持的正则表达式。 |
ENDSWITH
语法 | ENDSWITH(string, substring) |
输出 | 布尔值 |
定义 | 如果给定字符串以指定子字符串结尾,则返回 true。会忽略尾随空格。 |
示例 | ENDSWITH("Tableau", "leau") = true |
说明 | 另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。 |
FIND
语法 | FIND(string, substring, [start]) |
输出 | 数字 |
定义 | 返回子字符串在字符串中的索引位置,如果未找到子字符串,则返回 0。字符串中第一个字符的位置为 1。 如果添加了可选参数 |
示例 | FIND("Calculation", "alcu") = 2 FIND("Calculation", "Computer") = 0 FIND("Calculation", "a", 3) = 7 FIND("Calculation", "a", 2) = 2 FIND("Calculation", "a", 8) = 0 |
说明 | 另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。 |
FINDNTH
语法 | FINDNTH(string, substring, occurrence) |
输出 | 数字 |
定义 | 返回指定字符串内的第 n 个子字符串的位置,其中 n 由 occurrence 参数定义。 |
示例 | FINDNTH("Calculation", "a", 2) = 7 |
说明 | 所有数据源都不可使用 另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。 |
LEFT
语法 | LEFT(string, number) |
输出 | 字符串 |
定义 | 返回字符串最左侧一定 <number> 的字符。 |
示例 | LEFT("Matador", 4) = "Mata" |
说明 | 另请参见 MID 和 RIGHT。 |
LEN
语法 | LEN(string) |
输出 | 数字 |
定义 | 返回字符串长度。 |
示例 | LEN("Matador") = 7 |
说明 | 不要与空间函数 LENGTH (链接在新窗口中打开) 混淆。 |
LOWER
语法 | LOWER(string) |
输出 | 字符串 |
定义 | 以全小写字符返回提供的 <string> 。 |
示例 | LOWER("ProductVersion") = "productversion" |
说明 | 另请参见 UPPER 和 PROPER。 |
LTRIM
语法 | LTRIM(string) |
输出 | 字符串 |
定义 | 返回移除了所有前导空格的所提供的 <string> 。 |
示例 | LTRIM(" Matador ") = "Matador " |
说明 | 另请参见 RTRIM。 |
MAX
语法 | MAX(expression) 或 MAX(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最大值。
|
示例 | MAX(4,7) = 7 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
MID
语法 | (MID(string, start, [length]) |
输出 | 字符串 |
定义 | 返回从指定 如果添加了可选数字参数 |
示例 | MID("Calculation", 2) = "alculation" MID("Calculation", 2, 5) ="alcul" |
说明 | 另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。 |
MIN
语法 | MIN(expression) 或 MIN(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最小值。
|
示例 | MIN(4,7) = 4 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
PROPER
语法 | PROPER(string) |
输出 | 字符串 |
定义 | 返回所提供的 |
示例 | PROPER("PRODUCT name") = "Product Name" PROPER("darcy-mae") = "Darcy-Mae" |
说明 | 空格和非字母数字字符(如标点符号)被视为分隔符。 |
数据库限制 | PROPER 仅适用于某些平面文件和数据提取。如果您需要在不支持 PROPER 的数据源中使用 PROPER,请考虑使用数据提取。 |
REPLACE
语法 | REPLACE(string, substring, replacement |
输出 | 字符串 |
定义 | 在 <string> 中搜索 <substring> 并将其替换为 <replacement> 。如果未找到 <substring> ,则字符串保持不变。 |
示例 | REPLACE("Version 3.8", "3.8", "4x") = "Version 4x" |
说明 | 另请参见附加函数文档(链接在新窗口中打开)中的 REGEXP_REPLACE 。 |
RIGHT
语法 | RIGHT(string, number) |
输出 | 字符串 |
定义 | 返回字符串最右侧一定 <number> 的字符。 |
示例 | RIGHT("Calculation", 4) = "tion" |
说明 | 另请参见 LEFT 和 MID。 |
RTRIM
语法 | RTRIM(string) |
输出 | 字符串 |
定义 | 返回移除了所有尾随空格的所提供的 <string> 。 |
示例 | RTRIM(" Calculation ") = " Calculation" |
说明 | 另请参见 LTRIM 和 TRIM。 |
SPACE
语法 | SPACE(number) |
输出 | 字符串(具体来说,只是空格) |
定义 | 返回由指定数量的重复空格组成的字符串。 |
示例 | SPACE(2) = " " |
SPLIT
语法 | SPLIT(string, delimiter, token number) |
输出 | 字符串 |
定义 | 返回字符串中的一个子字符串,并使用分隔符字符将字符串分为一系列标记。 |
示例 | SPLIT ("a-b-c-d", "-", 2) = "b" SPLIT ("a|b|c|d", "|", -2) = "c" |
说明 | 字符串将被解释为分隔符和标记的交替序列。因此,对于字符串
另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。 |
数据库限制 | 可以为以下数据源类型使用拆分和自定义拆分命令:Tableau 数据提取、Microsoft Excel、文本文件、PDF 文件、Salesforce、OData、Microsoft Azure Market Place、Google Analytics(分析)、Vertica、Oracle、MySQL、PostgreSQL、Teradata、Amazon Redshift、Aster 数据、Google Big Query、Cloudera Hadoop Hive、Hortonworks Hive 和 Microsoft SQL Server。 某些数据源在拆分字符串时会有限制。请参见本主题后面的 SPLIT 函数限制。 |
STARTSWITH
语法 | STARTSWITH(string, substring) |
输出 | 布尔值 |
定义 | 如果 string 以 substring 开头,则返回 true。会忽略前导空格。 |
示例 | STARTSWITH("Matador, "Ma") = TRUE |
说明 | 另请参见附加函数文档(链接在新窗口中打开)中的 CONTAINS 以及支持的正则表达式。 |
TRIM
语法 | TRIM(string) |
输出 | 字符串 |
定义 | 返回移除了前导和尾随空格的所提供的 <string> 。 |
示例 | TRIM(" Calculation ") = "Calculation" |
说明 | 另请参见 LTRIM 和 RTRIM。 |
UPPER
语法 | UPPER(string) |
输出 | 字符串 |
定义 | 以全大写字符返回提供的 <string> 。 |
示例 | UPPER("Calculation") = "CALCULATION" |
说明 | 另请参见 PROPER 和 LOWER。 |
注意:日期函数不考虑配置的会计年度开始。请参见会计日期
DATE
将字符串和数字表达式转换为日期的类型转换函数,只要它们是可识别的格式。
语法 | DATE(expression) |
输出 | 日期 |
定义 | 在给定数字、字符串或日期 <expression> 的情况下返回日期。 |
示例 | DATE([Employee Start Date]) DATE("September 22, 2018") DATE("9/22/2018") DATE(#2018-09-22 14:52#) |
说明 | 与
|
DATEADD
将指定数量的日期部分(月、日等)添加到开始日期。
语法 | DATEADD(date_part, interval, date) |
输出 | 日期 |
定义 | 返回 <date> ,该日期的指定 <date_part> 中添加了指定的数字 <interval> 。例如,将开始日期增加 3 个月或 12 天。 |
示例 | 将所有的到期日推迟一周 DATEADD('week', 1, [due date]) 将 2021 年 2 月 20 日加上 280 天 DATEADD('day', 280, #2/20/21#) = #November 27, 2021# |
说明 | 支持 ISO 8601 日期。 |
DATEDIFF
返回两个日期之间的日期部分(周、年等)的数量。
语法 | DATEDIFF(date_part, date1, date2, [start_of_week]) |
输出 | 整数 |
定义 | 返回 <date1> 与 <date2> 之差(以 <date_part> 的单位表示)。例如,减去某人加入和离开乐队的日期,就可以知道他们在乐队里呆了多久。 |
示例 | 1986 年 3 月 25 日到 2021 年 2 月 20 日之间的天数 DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751 一个人在乐队里呆了几个月 DATEDIFF('month', [date joined band], [date left band]) |
说明 | 支持 ISO 8601 日期。 |
DATENAME
以离散字符串形式返回指定日期部分的名称。
语法 | DATENAME(date_part, date, [start_of_week]) |
输出 | 字符串 |
定义 | 以字符串的形式返回 <date> 的 <date_part> 。 |
示例 | DATENAME('year', #3/25/1986#) = "1986" DATENAME('month', #1986-03-25#) = "March" |
说明 | 支持 ISO 8601 日期。 一个非常类似的计算是 DATEPART,它以连续整数的形式返回指定日期部分的值。 通过更改计算结果的属性(维度或度量、连续或离散)和日期格式,可以将 反函数是 DATEPARSE,它接受一个字符串值并将其格式化为日期。 |
DATEPARSE
以日期形式返回特定格式的字符串。
语法 | DATEPARSE(date_format, date_string) |
输出 | 日期 |
定义 | <date_format> 参数将描述 <date_string> 字段的排列方式。由于可通过各种方式对字符串字段进行排序,因此 <date_format> 必须完全匹配。有关完整解释和格式设置详细信息,请参见将字段转换为日期字段(链接在新窗口中打开)。 |
示例 | DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986# |
说明 |
|
数据库限制 |
Hive 变体不支持 |
DATEPART
以整数形式返回指定日期部分的名称。
语法 | DATEPART(date_part, date, [start_of_week]) |
输出 | 整数 |
定义 | 以整数的形式返回 <date> 的 <date_part> 。 |
示例 | DATEPART('year', #1986-03-25#) = 1986 DATEPART('month', #1986-03-25#) = 3 |
说明 | 支持 ISO 8601 日期。 一个非常类似的计算是 反函数是 |
DATETRUNC
可以将此函数视为日期舍入。它获取特定的日期,并返回该日期在所需的特定程度上的版本。由于每个日期都必须有日、月、季度和年的值,因此 DATETRUNC
将这些值设置为指定日期部分之前每个日期部分的最小值。有关详细信息,请参考见示例。
语法 | DATETRUNC(date_part, date, [start_of_week]) |
输出 | 日期 |
定义 | 按 <date_part> 指定的准确度截断 <date> 。此函数返回新日期。例如,以月份级别截断处于月份中间的日期时,此函数返回当月的第一天。 |
示例 | DATETRUNC('day', #9/22/2018#) = #9/22/2018# DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018# (包含 2018 年 9 月 22 日的一周中的星期一) DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# (包含 2018 年 9 月 22 日的季度的第一天) 注意:对于周和 iso 周, |
说明 | 支持 ISO 8601 日期。 例如,您不应使用 举例来说,如果在可视化项中格式为显示秒, |
DAY
以整数形式返回一个月中的第几天 (1-31)。
语法 | DAY(date) |
输出 | 整数 |
定义 | 以整数的形式返回给定 <date> 的天。 |
示例 | Day(#September 22, 2018#) = 22 |
说明 | 另请参见 WEEK 、MONTH 、QUARTER 、YEAR 以及 ISO 等效值。 |
ISDATE
检查字符串是否为有效的日期格式。
语法 | ISDATE(string) |
输出 | 布尔值 |
定义 | 如果给定 <string> 为有效日期,则返回 true。 |
示例 | ISDATE(09/22/2018) = true ISDATE(22SEP18) = false |
说明 | 所需的参数必须是字符串。ISDATE 不能用于日期数据类型的字段,计算将返回错误。 |
ISOQUARTER
语法 | ISOQUARTER(date) |
输出 | 整数 |
定义 | 以整数的形式返回给定 <date> 的基于 ISO8601 周的季度。 |
示例 | ISOQUARTER(#1986-03-25#) = 1 |
说明 | 另请参见 ISOWEEK 、ISOWEEKDAY 、ISOYEAR , 以及 -ISO 等效值。 |
ISOWEEK
语法 | ISOWEEK(date) |
输出 | 整数 |
定义 | 以整数的形式返回给定 <date> 基于 ISO8601 周的周。 |
示例 | ISOWEEK(#1986-03-25#) = 13 |
说明 | 另请参见 ISOWEEKDAY 、ISOQUARTER 、ISOYEAR , 以及 -ISO 等效值。 |
ISOWEEKDAY
语法 | ISOWEEKDAY(date) |
输出 | 整数 |
定义 | 以整数的形式返回给定 <date> 的基于 ISO8601 周的工作日。 |
示例 | ISOWEEKDAY(#1986-03-25#) = 2 |
说明 | 另请参见 ISOWEEK 、ISOQUARTER 、ISOYEAR , 以及 -ISO 等效值。 |
ISOYEAR
语法 | ISOYEAR(date) |
输出 | 整数 |
定义 | 以整数的形式返回给定 <date> 的基于 ISO8601 年份的工作日。 |
示例 | ISOYEAR(#1986-03-25#) = 1,986 |
说明 | 另请参见 ISOWEEK 、ISOWEEKDAY 、ISOQUARTER , 以及 -ISO 等效值。 |
MAKEDATE
语法 | MAKEDATE(year, month, day) |
输出 | 日期 |
定义 | 返回一个依据指定 <year> 、<month> 和 <day> 构造的日期值。 |
示例 | MAKEDATE(1986,3,25) = #1986-03-25# |
说明 | 注意,输入错误的值将被调整为一个日期,例如 可用于 Tableau 数据提取。检查在其他数据源中的可用性。
|
MAKEDATETIME
语法 | MAKEDATETIME(date, time) |
输出 | 日期时间 |
定义 | 返回合并了 <date> 和 <time> 的日期时间。日期可以是 date、datetime 或 string 类型。时间必须是 datetime。 |
示例 | MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM# MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM# |
说明 | 此函数仅适用于与 MySQL 兼容的连接(对于 Tableau 为 MySQL 和 Amazon Aurora)。
|
MAKETIME
语法 | MAKETIME(hour, minute, second) |
输出 | 日期时间 |
定义 | 返回一个依据指定 <hour> 、<minute> 和 <second> 构造的日期值。 |
示例 | MAKETIME(14, 52, 40) = #1/1/1899 14:52:40# |
说明 | 由于 Tableau 不支持时间数据类型,只支持日期时间,因此输出是日期时间。字段的日期部分将是 1/1/1899。 类似于 |
MAX
语法 | MAX(expression) 或 MAX(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最大值。
|
示例 | MAX(4,7) = 7 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
MIN
语法 | MIN(expression) 或 MIN(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最小值。
|
示例 | MIN(4,7) = 4 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
MONTH
语法 | MONTH(date) |
输出 | 整数 |
定义 | 以整数形式返回给定 <date> 的月份。 |
示例 | MONTH(#1986-03-25#) = 3 |
说明 | 另请参见 DAY 、WEEK 、QUARTER 、YEAR 以及 ISO 等效值 |
NOW
语法 | NOW() |
输出 | 日期时间 |
定义 | 返回当前本地系统日期和时间。 |
示例 | NOW() = 1986-03-25 1:08:21 PM |
说明 |
另请参见返回日期而不是日期时间的类似计算 如果数据源是实时连接,则系统日期和时间可能位于另一个时区。有关如何解决此问题的详细信息,请参见知识库。 |
QUARTER
语法 | QUARTER(date) |
输出 | 整数 |
定义 | 以整数形式返回给定 <date> 的季度。 |
示例 | QUARTER(#1986-03-25#) = 1 |
说明 | 另请参见 DAY 、WEEK 、MONTH 、YEAR 以及 ISO 等效值 |
TODAY
语法 | TODAY() |
输出 | 日期 |
定义 | 返回当前本地系统日期。 |
示例 | TODAY() = 1986-03-25 |
说明 |
另请参见返回日期时间而不是日期的类似计算 NOW。 如果数据源是实时连接,则系统日期可能位于另一个时区。有关如何解决此问题的详细信息,请参见知识库。 |
WEEK
语法 | WEEK(date) |
输出 | 整数 |
定义 | 以整数形式返回给定 <date> 的周。 |
示例 | WEEK(#1986-03-25#) = 13 |
说明 | 另请参见 DAY 、MONTH 、QUARTER 、YEAR 以及 ISO 等效值 |
YEAR
语法 | YEAR(date) |
输出 | 整数 |
定义 | 以整数形式返回给定 <date> 的年份。 |
示例 | YEAR(#1986-03-25#) = 1,986 |
说明 | 另请参见 DAY 、WEEK 、MONTH 、QUARTER 以及 ISO 等效值 |
date_part
Tableau 中的许多日期函数都采用参数 date_part
,这是一个字符串常量,它告诉函数要考虑日期的哪一部分,例如日、周、季度等。您可以使用的有效 date_part
值包括:
date_part | 值 |
---|---|
'year' | 四位数年份 |
'quarter' | 1-4 |
'month' | 1-12 或 "January"、"February" 等 |
'dayofyear' | 一年中的第几天;1 月 1 日为 1、2 月 1 日为 32,依此类推 |
'day' | 1-31 |
'weekday' | 1-7 或 "Sunday"、"Monday" 等 |
'week' | 1-52 |
'hour' | 0-23 |
'minute' | 0-59 |
'second' | 0-60 |
'iso-year' | 4 位数 ISO 8601 年份 |
'iso-quarter' | 1-4 |
'iso-week' | 1-52,每周始终从星期一开始 |
'iso-weekday' | 1-7,每周始终从星期一开始 |
AND
语法 | <expr1> AND <expr2> |
定义 | 对两个表达式执行逻辑合取运算。(如果两边都为 true,则逻辑测试返回 true。) |
输出 | 布尔值(True 或 False) |
示例 | IF [Season] = "Spring" AND "[Season] = "Fall" “如果(Season = Spring)和(Season = Fall)同时为 true,则返回“It's the apocalypse and footwear doesn't matter”。 |
说明 | 通常与 IF 和 IIF 一起使用。另请参见 NOT 和 或者。 如果两个表达式都为 如果所创建的计算中的 注意: |
CASE
语法 | CASE <expression>
|
输出 | 取决于 <then> 值的数据类型。 |
定义 | 对 |
示例 |
“看看“Season”字段。如果值为 Summer,则返回 Sandals。如果值为 Winter,则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项,则返回 Sneakers。” |
说明 | 提示:很多时候,您可以使用组来获得与复杂 CASE 函数相同的结果,或者使用 CASE 来替换本机分组功能,例如前面的示例。您可能想测试哪个更适合您的场景。 |
ELSE
语法 | CASE <expression>
|
定义 | IF 或 CASE 表达式的一个可选部分,用于指定如果没有一个测试表达式为 true 则返回的默认值。 |
示例 | IF [Season] = "Summer" THEN 'Sandals' CASE [Season] |
说明 | 与 CASE、WHEN、IF、ELSEIF、THEN 和 END 一起使用
|
ELSEIF
语法 | [ELSEIF <test2> THEN <then2>] |
定义 | IF 表达式的一个可选部分,用于指定初始 IF 之外的附加条件。 |
示例 | IF [Season] = "Summer" THEN 'Sandals' |
说明 |
与 |
END
定义 | 用于结束一个 IF 或 CASE 表达式。 |
示例 | IF [Season] = "Summer" THEN 'Sandals' “如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果两个表达式都不为 true,则返回 Sneakers。” CASE [Season] “看看“Season”字段。如果值为 Summer,则返回 Sandals。如果值为 Winter,则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项,则返回 Sneakers。” |
说明 |
IF
语法 | IF <test1> THEN <then1> |
输出 | 取决于 <then> 值的数据类型。 |
定义 | 测试一系列表达式,同时为第一个为 true 的 |
示例 | IF [Season] = "Summer" THEN 'Sandals' “如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果两个表达式都不为 true,则返回 Sneakers。” |
说明 |
IFNULL
语法 | IFNULL(expr1, expr2) |
输出 | 取决于 <expr> 值的数据类型。 |
定义 | 如果 |
示例 | IFNULL([Assigned Room], "TBD") “如果“Assigned Room”(分配的房间)字段不为 null,则返回其值。如果“Assigned Room”(分配的房间)字段为 null,则返回 TBD。” |
说明 | 与 ISNULL 进行比较。 另请参见 ZN。 |
IIF
语法 | IIF(<test>, <then>, <else>, [<unknown>]) |
输出 | 取决于表达式中值的数据类型。 |
定义 | 检查是否满足条件(<test> ),并在 test 为 true 时返回 <then> ,在 test 为 false 时返回 <else> ,如果 test 为 null 则为可选值 <unknown> 。如果未指定可选的 unknown,IIF 将返回 null。 |
示例 | IIF([Season] = 'Summer', 'Sandals', 'Other footwear') “如果 Season = Summer,,则返回 Sandals。否则返回 Other footwear” IIF([Season] = 'Summer', 'Sandals', “如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果两者均不为 true,则返回 Sneakers。” IIF('Season' = 'Summer', 'Sandals', “如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果没有一个表达式为 true,则返回 Sneakers。” |
说明 |
也就是说,在下面的计算中,结果将是红色,而不是橙色,因为一旦 A=A 计算为 true,表达式就会停止计算:
|
IN
语法 | <expr1> IN <expr2> |
输出 | 布尔值(True 或 False) |
定义 | 如果 <expr1> 中的任何值与 <expr2> 中的任何值匹配,则返回 TRUE 。 |
示例 | SUM([Cost]) IN (1000, 15, 200) “Cost 字段的值是 1000、15 还是 200?” [Field] IN [Set] “该字段的值是否存在于集合中?” |
说明 |
另请参见 WHEN。 |
ISDATE
语法 | ISDATE(string) |
输出 | 布尔值(True 或 False) |
定义 | 如果 <string> 为有效日期,则返回 true。输入表达式必须是字符串(文本)字段。 |
示例 | ISDATE("2018-09-22") “字符串 2018-09-22 是格式正确的日期吗?” |
说明 | 什么被视为有效日期取决于对计算求值的系统的区域设置(链接在新窗口中打开)。例如: 在美国:
在英国:
|
ISNULL
语法 | ISNULL(expression) |
输出 | 布尔值(True 或 False) |
定义 | 如果 |
示例 | ISNULL([Assigned Room]) “Assigned Room(分配的房间)字段是否为 null?” |
说明 | 与 IFNULL 进行比较。 另请参见 ZN。 |
MAX
语法 | MAX(expression) 或 MAX(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最大值。
|
示例 | MAX(4,7) = 7 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
MIN
语法 | MIN(expression) 或 MIN(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最小值。
|
示例 | MIN(4,7) = 4 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
NOT
语法 | NOT <expression> |
输出 | 布尔值(True 或 False) |
定义 | 对一个表达式执行逻辑非运算。 |
示例 | IF NOT [Season] = "Summer" “如果 Season 不等于 Summer,则返回 Don't wear sandals。否则,返回 Wear sandals。” |
说明 |
或者
语法 | <expr1> OR <expr2> |
输出 | 布尔值(True 或 False) |
定义 | 对两个表达式执行逻辑析取操作。 |
示例 | IF [Season] = "Spring" OR [Season] = "Fall" “如果 (Season = Spring) 或 (Season = Fall) 为 true,则返回 Sneakers。” |
说明 | 通常与 IF 和 IIF 一起使用。另请参见 DATE 和 NOT。 如果任一表达式为 如果所创建的计算中的 注意: |
THEN
语法 | IF <test1> THEN <then1>
|
定义 | IF 、ELSEIF 或 CASE 表达式的必需部分,用于定义如果特定值或测试为 true 则返回什么结果。 |
示例 | IF [Season] = "Summer" THEN 'Sandals' “如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果两个表达式都不为 true,则返回 Sneakers。” CASE [Season] “看看“Season”字段。如果值为 Summer,则返回 Sandals。如果值为 Winter,则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项,则返回 Sneakers。” |
说明 |
WHEN
语法 | CASE <expression>
|
定义 | CASE 表达式的必需部分。查找第一个与 <expression> 匹配的 <value> ,并返回对应的 <then> 。 |
示例 | CASE [Season] “看看“Season”字段。如果值为 Summer,则返回 Sandals。如果值为 Winter,则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项,则返回 Sneakers。” |
说明 |
CASE <expression>
|
ZN
语法 | ZN(expression) |
输出 | 取决于 <expression> 的数据类型,或者为 0。 |
定义 | 如果 <expression> 不为 null,则返回该表达式,否则返回零。 |
示例 | ZN([Test Grade]) “如果测试成绩不为 null,则返回其值。如果测试成绩为 null,则返回 0。” |
说明 |
另请参见 ISNULL。 |
ATTR
语法 | ATTR(expression) |
定义 | 如果它的所有行都有一个值,则返回该表达式的值。否则返回星号。会忽略 Null 值。 |
AVG
语法 | AVG(expression) |
定义 | 返回表达式中所有值的平均值。会忽略 Null 值。 |
说明 | AVG 只能用于数字字段。 |
COLLECT
语法 | COLLECT(spatial) |
定义 | 将参数字段中的值组合在一起的聚合计算。会忽略 Null 值。 |
说明 | COLLECT 只能用于空间字段。 |
CORR
语法 | CORR(expression1, expression2) |
输出 | 从 -1 到 1 的数字 |
定义 | 返回两个表达式的皮尔森相关系数。 |
示例 | example |
说明 | 皮尔森相关系数衡量两个变量之间的线性关系。结果范围为 -1 至 +1(包括 -1 和 +1),其中 1 表示精确的正向线性关系,0 表示方差之间没有线性关系,而 −1 表示精确的反向关系。 CORR 结果的平方等于线性趋势线模型的 R 平方值。请参见“趋势线模型术语”(链接在新窗口中打开)。 与表范围 LOD 表达式一起使用: 您可以使用 CORR,通过表范围的详细级别表达式(链接在新窗口中打开)来可视化解聚散点图中的相关性。例如: {CORR(Sales, Profit)} 借助详细级别表达式,关联将在所有行上运行。如果您使用像 |
数据库限制 |
对于其他数据源,请考虑提取数据或使用 |
COUNT
语法 | COUNT(expression) |
定义 | 返回项目数。不对 Null 值计数。 |
COUNTD
语法 | COUNTD(expression) |
定义 | 返回组中不同项目的数量。不对 Null 值计数。 |
COVAR
语法 | COVAR(expression1, expression2) |
定义 | 返回两个表达式的样本协方差。 |
说明 | 协方差对两个变量的共同变化方式进行量化。正协方差指明两个变量趋向于向同一方向移动,平均来说,即一个变量的较大值趋向于与另一个变量的较大值对应。样本协方差使用非空数据点的数量 n - 1 来规范化协方差计算,而不是使用总体协方差(可用于 如果
|
数据库限制 |
对于其他数据源,请考虑提取数据或使用 |
COVARP
语法 | COVARP(expression 1, expression2) |
定义 | 返回两个表达式的总体协方差。 |
说明 | 协方差对两个变量的共同变化方式进行量化。正协方差指明两个变量趋向于向同一方向移动,平均来说,即一个变量的较大值趋向于与另一个变量的较大值对应。总体协方差等于样本协方差除以 (n-1)/n,其中 n 是非空数据点的总数。如果存在可用于所有相关项的数据,则总体协方差是合适的选择,与之相反,在只有随机项子集的情况下,样本协方差(及 如果 |
数据库限制 |
对于其他数据源,请考虑提取数据或使用 |
MAX
语法 | MAX(expression) 或 MAX(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最大值。
|
示例 | MAX(4,7) = 7 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
MEDIAN
语法 | MEDIAN(expression) |
定义 | 返回表达式在所有记录中的中位数。会忽略 Null 值。 |
说明 | MEDIAN 只能用于数字字段。 |
数据库限制 |
对于其他数据源类型,可以将数据提取到数据提取文件以使用此函数。请参见提取数据(链接在新窗口中打开)。 |
MIN
语法 | MIN(expression) 或 MIN(expr1, expr2) |
输出 | 与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 。 |
定义 | 返回两个参数(必须为相同数据类型)中的最小值。
|
示例 | MIN(4,7) = 4 |
说明 | 对于字符串
对于数据库数据源, 对于日期 对于日期, 作为聚合
作为比较
另请参见 |
PERCENTILE
语法 | PERCENTILE(expression, number) |
定义 | 从给定表达式返回与指定 <number> 对应的百分位处的值。<number> 必须介于 0 到 1 之间(含 0 和 1),并且必须是数值常量。 |
示例 | PERCENTILE([Score], 0.9) |
数据库限制 | 此函数可用于以下数据源:非旧版 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) |
定义 | 返回表达式中所有值的总计。会忽略 Null 值。 |
说明 | SUM 只能用于数字字段。 |
VAR
语法 | VAR(expression) |
定义 | 基于群体样本返回给定表达式中所有值的统计方差。 |
VARP
语法 | VARP(expression) |
定义 | 对整个群体返回给定表达式中所有值的统计方差。 |
FULLNAME( )
语法 | FULLNAME( ) |
输出 | 字符串 |
定义 | 返回当前用户的全名。 |
示例 | FULLNAME( ) 此函数返回当前已登录用户的全名,例如“Hamlin Myrer”。 [Manager] = FULLNAME( ) 如果经理“Hamlin Myrer”已登录,则仅当视图中的“Manager”字段包含“Dave Hallsten”时,此示例才会返回 TRUE。 |
说明 | 此函数检查:
用户筛选器 用作筛选器时,计算字段(例如 |
ISFULLNAME
语法 | ISFULLNAME("User Full Name") |
输出 | 布尔值 |
定义 | 如果当前用户的全名与指定的全名匹配,则返回 |
示例 | ISFULLNAME("Hamlin Myrer") |
说明 |
此函数检查:
|
ISMEMBEROF
语法 | ISMEMBEROF("Group Name") |
输出 | 布尔值或 null |
定义 | 如果当前使用 Tableau 的用户是与给定字符串匹配的组的成员,则返回 |
示例 | ISMEMBEROF('Superstars') ISMEMBEROF('domain.lan\Sales') |
说明 |
如果用户已登录 Tableau Cloud 或 Tableau Server,组成员身份由 Tableau 组确定。如果给定字符串是“All Users”,该函数将返回 TRUE
如果对用户的组成员身份进行更改,则基于组成员身份的数据更改将反映在新会话的工作簿或视图中。现有会话将反映陈旧数据。 |
ISUSERNAME
语法 | ISUSERNAME("username") |
输出 | 布尔值 |
定义 | 如果当前用户的用户名与指定的用户名匹配,则返回 TRUE ;如果不匹配,则返回 FALSE 。 |
示例 | ISUSERNAME("hmyrer") |
说明 |
此函数检查:
|
USERDOMAIN( )
语法 | USERDOMAIN( ) |
输出 | 字符串 |
定义 | 返回当前用户的域。 |
说明 | 此函数检查:
|
USERNAME( )
语法 | USERNAME( ) |
输出 | 字符串 |
定义 | 返回当前用户的用户名。 |
示例 | USERNAME( ) 此函数返回已登录用户的用户名,例如“hmyrer”。 [Manager] = USERNAME( ) 如果经理“hmyrer”已登录,则仅当视图中的“Manager”字段包含“hmyrern”时,此示例才会返回 TRUE。 |
说明 | 此函数检查:
用户筛选器 用作筛选器时,计算字段(例如 |
USERATTRIBUTE
注意:仅适用于在 Tableau Cloud 中嵌入工作流。有关详细信息,请参见身份验证和嵌入式视图(链接在新窗口中打开)。
语法 | USERATTRIBUTE('attribute_name') |
输出 | 字符串或 null |
定义 | 如果 如果 |
示例 | 假设“Region”(区域)是 JWT 中包含的用户属性,并(使用站点管理员已配置的已连接应用传递给 Tableau)。 作为工作簿作者,您可以将可视化项设置为根据指定区域筛选数据。在该筛选器中,您可以引用以下计算。 [Region] = USERATTRIBUTE("Region") 当来自西部地区的 User2 查看嵌入式可视化项时,Tableau 仅显示西部地区的相应数据。 |
说明 | 如果期望 <'attribute_name'> 返回多个值,您可以使用 USERATTRIBUTEINCLUDES 函数。 |
USERATTRIBUTEINCLUDES
注意:仅适用于在 Tableau Cloud 中嵌入工作流。有关详细信息,请参见身份验证和嵌入式视图(链接在新窗口中打开)。
语法 | USERATTRIBUTEINCLUDES('attribute_name', 'expected_value') |
输出 | 布尔值 |
定义 | 如果以下两个条件都成立,则返回
否则返回 |
示例 | 假设“Region”(区域)是 JWT 中包含的用户属性,并(使用站点管理员已配置的已连接应用传递给 Tableau)。 作为工作簿作者,您可以将可视化项设置为根据指定区域筛选数据。在该筛选器中,您可以引用以下计算。 USERATTRIBUTEINCLUDES('Region', [Region]) 如果来自西部地区的 User2 访问嵌入式可视化项,Tableau 会检查“Region”(区域)用户属性是否与“[Region]”(区域)字段值之一匹配。如果为 true,可视化项将显示适当的数据。 当来自北部地区的另一位 User3 访问相同的可视化项时,她无法看到任何数据,因为没有与“[Region]”(区域)字段值匹配的项。 |
FIRST( )
返回从当前行到分区中第一行的行数。例如,下面的视图显示每季度销售额。在 Date 分区中计算 FIRST() 时,第一行与第二行之间的偏移为 -1。
示例
当前行索引为 3 时,FIRST()
= -2
。
INDEX( )
返回分区中当前行的索引,不包含与值有关的任何排序。第一个行索引从 1 开始。例如,下表显示每季度销售额。当在 Date 分区中计算 INDEX() 时,各行的索引分别为 1、2、3、4 等。
示例
对于分区中的第三行,INDEX() = 3
。
LAST( )
返回从当前行到分区中最后一行的行数。例如,下表显示每季度销售额。在 Date 分区中计算 LAST() 时,最后一行与第二行之间的偏移为 5。
示例
当前行索引为 3(共 7 行)时,LAST() = 4
。
LOOKUP(expression, [offset])
返回目标行(指定为与当前行的相对偏移)中表达式的值。使用 FIRST() + n 和 LAST() - n 作为相对于分区中第一行/最后一行的目标偏移量定义的一部分。如果省略了 offset
,则可以在字段菜单上设置要比较的行。如果无法确定目标行,则此函数返回 NULL。
下面的视图显示每季度销售额。当在 Date 分区中计算 LOOKUP (SUM(Sales), 2)
时,每行都会显示接下来 2 个季度的销售额值。
示例
LOOKUP(SUM([Profit]),
FIRST()+2)
计算分区第三行中的 SUM(Profit)。
MODEL_EXTENSION 函数
模型扩展程序函数:
MODEL_EXTENSION_BOOL
MODEL_EXTENSION_INT
MODEL_EXTENSION_REAL
MODEL_EXTENSION_STRING
用于将数据传递到外部服务(例如 R、TabPy 或 Matlab)上部署的模型。请参见分析扩展程序(链接在新窗口中打开)。
MODEL_PERCENTILE(target_expression, predictor_expression(s))
返回期望值小于或等于观察标记的概率(介于 0 和 1 之间),由目标表达式和其他预测因子定义。这是后验预测分布函数,也称为累积分布函数 (CDF)。
此函数是 MODEL_QUANTILEL 的逆函数。有关预测建模函数的信息,请参见预测建模函数在 Tableau 中的工作方式。
示例
以下公式返回销售额总和标记的分位数,根据订单计数进行调整。
MODEL_PERCENTILE(SUM([Sales]), COUNT([Orders]))
MODEL_QUANTILE(quantile, target_expression, predictor_expression(s))
以指定的分位数返回由目标表达式和其他预测因子定义的可能范围内的目标数值。这是后验预测分位数。
此函数是 MODEL_PERCENTILE 的逆函数。有关预测建模函数的信息,请参见预测建模函数在 Tableau 中的工作方式。
示例
以下公式返回中位数 (0.5) 预测销售额总和,根据订单数进行调整。
MODEL_QUANTILE(0.5, SUM([Sales]), COUNT([Orders]))
PREVIOUS_VALUE(expression)
返回此计算在上一行中的值。如果当前行是分区的第一行,则返回给定表达式。
示例
SUM([Profit]) * PREVIOUS_VALUE(1)
计算 SUM(Profit) 的运行产品。
RANK(expression, ['asc' | 'desc'])
返回分区中当前行的标准竞争排名。为相同的值分配相同的排名。使用可选的 'asc' | 'desc'
参数指定升序或降序顺序。默认为降序。
利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (4, 2, 2, 1)。
在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。
有关不同排名选项的信息,请参见排名计算。
示例
下图显示对一组值执行各种排名函数(RANK、RANK_DENSE、RANK_MODIFIED、RANK_PERCENTILE 和 RANK_UNIQUE)的效果。数据集包含 14 名学生(学生 A 到 N)的相关信息;“Age”(年龄)列显示每个学生的当前年龄(所有学生都在 17 岁和 20 岁之间)。其余的列会显示每个排名函数对年龄值集的影响,并始终假定函数的默认顺序(升序或降序)。
RANK_DENSE(expression, ['asc' | 'desc'])
返回分区中当前行的密集排名。为相同的值分配相同的排名,但不会向数字序列中插入间距。使用可选的 'asc' | 'desc'
参数指定升序或降序顺序。默认为降序。
利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (3, 2, 2, 1)。
在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。
有关不同排名选项的信息,请参见排名计算。
RANK_MODIFIED(expression, ['asc' | 'desc'])
返回分区中当前行的调整后竞争排名。为相同的值分配相同的排名。使用可选的 'asc' | 'desc'
参数指定升序或降序顺序。默认为降序。
利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (4, 3, 3, 1)。
在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。
有关不同排名选项的信息,请参见排名计算。
RANK_PERCENTILE(expression, ['asc' | 'desc'])
返回分区中当前行的百分位排名。使用可选的 'asc' | 'desc'
参数指定升序或降序顺序。默认为升序。
利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (0, 0.67, 0.67, 1.00)。
在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。
有关不同排名选项的信息,请参见排名计算。
RANK_UNIQUE(expression, ['asc' | 'desc'])
返回分区中当前行的唯一排名。为相同的值分配相同的排名。使用可选的 'asc' | 'desc'
参数指定升序或降序顺序。默认为降序。
利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (4, 2, 3, 1)。
在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。
有关不同排名选项的信息,请参见排名计算。
RUNNING_AVG(expression)
返回给定表达式从分区中第一行到当前行的运行平均值。
下面的视图显示每季度销售额。当在 Date 分区中计算 RUNNING_AVG(SUM([Sales])
时,结果为每个季度的销售额值的运行平均值。
示例
RUNNING_AVG(SUM([Profit]))
计算 SUM(Profit) 的运行平均值。
RUNNING_COUNT(expression)
返回给定表达式从分区中第一行到当前行的运行计数。
示例
RUNNING_COUNT(SUM([Profit]))
计算 SUM(Profit) 的运行计数。
RUNNING_MAX(expression)
返回给定表达式从分区中第一行到当前行的运行最大值。
示例
RUNNING_MAX(SUM([Profit]))
计算 SUM(Profit) 的运行最大值。
RUNNING_MIN(expression)
返回给定表达式从分区中第一行到当前行的运行最小值。
示例
RUNNING_MIN(SUM([Profit]))
计算 SUM(Profit) 的运行最小值。
RUNNING_SUM(expression)
返回给定表达式从分区中第一行到当前行的运行总计。
示例
RUNNING_SUM(SUM([Profit]))
计算 SUM(Profit) 的运行总计
SIZE()
返回分区中的行数。例如,下面的视图显示每季度销售额。在 Date 分区中有七行,因此 Date 分区的 Size() 为 7。
示例
当前分区包含五行时 SIZE() = 5
。
SCRIPT_ 函数
脚本函数:
SCRIPT_BOOL
SCRIPT_INT
SCRIPT_REAL
SCRIPT_STRING
用于将数据传递到外部服务,例如 R、TabPy 或 Matlab。请参见分析扩展程序(链接在新窗口中打开)。
TOTAL(expression)
返回表计算分区内表达式的总计。
示例
假定您从此视图开始:
您可以打开计算编辑器并创建名为“总额”的新字段。
然后可以将“总额”拖到“文本”上以替换 SUM(Sales)。您的视图会发生更改,使其总计值基于默认的“计算依据”值:
这会产生问题,默认的“计算依据”值是什么?如果在“数据”窗格中右键单击(在 Mac 上按住 Control 单击)“总额”,并选择“编辑”,则会提供一点额外的信息:
默认的“计算依据”值是“表(横穿)”。结果是,“总额”会汇总每个表行的值。因此,您看到的每一行的值是表原始版本中值的总和。
原始表内 2011/Q1 行中的值为 $8601、$6579、$44262 和 $15006。在“总额”替换 SUM(Sales) 之后,表中的值都为 $74,448,这是四个原始值的总和。
请注意,将“总额”拖到“文本”上之后“总额”旁边会出现小三角:
这表明该字段正在使用表计算。您可以右键单击字段并选择“编辑表计算”,以将您的函数重定向到不同的“计算依据”值。例如,可以将其设置为“表(向下)”。在此情况下,您的表将如下所示:
TOTAL(expression)
返回表计算分区内表达式的总计。
示例
假定您从此视图开始:
您可以打开计算编辑器并创建名为“总额”的新字段。
然后可以将“总额”拖到“文本”上以替换 SUM(Sales)。您的视图会发生更改,使其总计值基于默认的“计算依据”值:
这会产生问题,默认的“计算依据”值是什么?如果在“数据”窗格中右键单击(在 Mac 上按住 Control 单击)“总额”,并选择“编辑”,则会提供一点额外的信息:
默认的“计算依据”值是“表(横穿)”。结果是,“总额”会汇总每个表行的值。因此,您看到的每一行的值是表原始版本中值的总和。
原始表内 2011/Q1 行中的值为 $8601、$6579、$44262 和 $15006。在“总额”替换 SUM(Sales) 之后,表中的值都为 $74,448,这是四个原始值的总和。
请注意,将“总额”拖到“文本”上之后“总额”旁边会出现小三角:
这表明该字段正在使用表计算。您可以右键单击字段并选择“编辑表计算”,以将您的函数重定向到不同的“计算依据”值。例如,可以将其设置为“表(向下)”。在此情况下,您的表将如下所示:
WINDOW_CORR(expression1, expression2, [start, end])
返回窗口内两个表达式的皮尔森相关系数。窗口定义为与当前行的偏移。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了 start 和 end,则使用整个分区。
皮尔森相关系数衡量两个变量之间的线性关系。结果范围为 -1 至 +1(包括 -1 和 +1),其中 1 表示精确的正向线性关系,比如一个变量中的正向更改即表示另一个变量中对应量级的正向更改,0 表示方差之间没有线性关系,而 −1 表示精确的反向关系。
有一个等效的聚合函数:CORR。请参阅 Tableau 函数(按字母顺序)(链接在新窗口中打开)。
示例
以下公式返回 SUM(Profit) 和 SUM(Sales) 从前五行到当前行的皮尔森相关系数。
WINDOW_CORR(SUM[Profit]), SUM([Sales]), -5, 0)
WINDOW_COUNT(expression, [start, end])
返回窗口中表达式的计数。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
示例
WINDOW_COUNT(SUM([Profit]), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 计数
WINDOW_COVAR(expression1, expression2, [start, end])
返回窗口内两个表达式的样本协方差。窗口定义为与当前行的偏移。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了 start 和 end 参数,则窗口为整个分区。
样本协方差使用非空数据点的数量 n - 1 来规范化协方差计算,而不是使用总体协方差(及 WINDOW_COVARP 函数)所使用的 n。当数据是用于估算较大总体的协方差的随机样本时,则样本协方差是合适的选择。
有一个等效的聚合函数:COVAR。请参阅 Tableau 函数(按字母顺序)(链接在新窗口中打开)。
示例
以下公式返回 SUM(Profit) 和 SUM(Sales) 从前两行到当前行的样本协方差。
WINDOW_COVAR(SUM([Profit]), SUM([Sales]), -2, 0)
WINDOW_COVARP(expression1, expression2, [start, end])
返回窗口内两个表达式的总体协方差。窗口定义为与当前行的偏移。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了 start 和 end,则使用整个分区。
总体协方差等于样本协方差除以 (n-1)/n,其中 n 是非空数据点的总数。如果存在可用于所有相关项的数据,则总体协方差是合适的选择,与之相反,在只有随机项子集的情况下,样本协方差(及 WINDOW_COVAR 函数)较为适合。
有一个等效的聚合函数:COVARP。Tableau 函数(按字母顺序)(链接在新窗口中打开)。
示例
以下公式返回 SUM(Profit) 和 SUM(Sales) 从前两行到当前行的总体协方差。
WINDOW_COVARP(SUM([Profit]), SUM([Sales]), -2, 0)
WINDOW_MEDIAN(expression, [start, end])
返回窗口中表达式的中值。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
例如,下面的视图显示每季度利润。Date 分区中的窗口中值返回所有日期的中值利润。
示例
WINDOW_MEDIAN(SUM([Profit]), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 中值。
WINDOW_MAX(expression, [start, end])
返回窗口中表达式的最大值。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
例如,下面的视图显示每季度销售额。Date 分区中的窗口最大值返回所有日期间的最大销售额。
示例
WINDOW_MAX(SUM([Profit]), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 最大值。
WINDOW_MIN(expression, [start, end])
返回窗口中表达式的最小值。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
例如,下面的视图显示每季度销售额。Date 分区中的窗口最小值返回所有日期间的最小销售额。
示例
WINDOW_MIN(SUM([Profit]), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 最小值。
WINDOW_PERCENTILE(expression, number, [start, end])
返回与窗口中指定百分位相对应的值。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
示例
WINDOW_PERCENTILE(SUM([Profit]), 0.75, -2, 0)
返回 SUM(Profit) 的前面两行到当前行的第 75 个百分位。
WINDOW_STDEV(expression, [start, end])
返回窗口中表达式的样本标准差。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
示例
WINDOW_STDEV(SUM([Profit]), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 标准差。
WINDOW_STDEVP(expression, [start, end])
返回窗口中表达式的有偏差标准差。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
示例
WINDOW_STDEVP(SUM([Profit]), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 标准差。
WINDOW_SUM(expression, [start, end])
返回窗口中表达式的总计。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
例如,下面的视图显示每季度销售额。Date 分区中计算的窗口总计返回所有季度的销售额总计。
示例
WINDOW_SUM(SUM([Profit]), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 总和。
WINDOW_VAR(expression, [start, end])
返回窗口中表达式的样本方差。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
示例
WINDOW_VAR((SUM([Profit])), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 方差。
WINDOW_VARP(expression, [start, end])
返回窗口中表达式的有偏差方差。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。
示例
WINDOW_VARP(SUM([Profit]), FIRST()+1, 0)
计算从第二行到当前行的 SUM(Profit) 方差。
RAWSQL 直通函数可用于将 SQL 表达式直接发送到数据库,而不由 Tableau 进行解析。如果您有 Tableau 不能识别的自定义数据库函数,则可以使用直通函数调用这些自定义函数。
您的数据库通常不会理解在 Tableau 中显示的字段名称。因为 Tableau 不会解释包含在直通函数中的 SQL 表达式,所以在表达式中使用 Tableau 字段名称可能会导致错误。可以使用替换语法将用于 Tableau 计算的正确字段名称或表达式插入直通 SQL。例如,假设您有一个计算一组中值的函数,则可以对 Tableau 列 [Sales] 调用该函数,如下所示:
RAWSQLAGG_REAL(“MEDIAN(%1)”, [Sales])
因为 Tableau 不解释该表达式,所以您必须定义聚合。在使用聚合表达式时,可以使用下面描述的 RAWSQLAGG 函数。
RAWSQL 直通函数可能不使用数据提取或已发布数据源(如果它们包含关系)。
RAWSQL 函数
Tableau 中提供了以下 RAWSQL 函数。
RAWSQL_BOOL(“sql_expr”, [arg1], …[argN])
从给定 SQL 表达式返回布尔结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。
示例
在示例中,%1 等于 [Sales],%2 等于 [Profit]。
RAWSQL_BOOL(“IIF( %1 > %2, True, False)”, [Sales], [Profit])
RAWSQL_DATE(“sql_expr”, [arg1], …[argN])
从给定 SQL 表达式返回日期结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。
示例
在下例中,%1 等于 [Order Date]。
RAWSQL_DATE(“%1”, [Order
Date])
RAWSQL_DATETIME(“sql_expr”, [arg1], …[argN])
从给定 SQL 表达式返回日期和时间结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Delivery Date]。
示例
RAWSQL_DATETIME(“MIN(%1)”, [Delivery Date])
RAWSQL_INT(“sql_expr”, [arg1], …[argN])
从给定 SQL 表达式返回整数结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]。
示例
RAWSQL_INT(“500
+ %1”, [Sales])
RAWSQL_REAL(“sql_expr”, [arg1], …[argN])
从直接传递给基础数据库的给定 SQL 表达式返回数字结果。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]
示例
RAWSQL_REAL(“-123.98 * %1”, [Sales])
RAWSQL_SPATIAL
从直接传递给基础数据源的给定 SQL 表达式返回空间数据。在 SQL 表达式中将 %n 用作数据库值的替换语法。
示例
在本例中,%1 等于 [Geometry]。
RAWSQL_SPATIAL("%1", [Geometry])
RAWSQL_STR(“sql_expr”, [arg1], …[argN])
从直接传递给基础数据库的给定 SQL 表达式返回字符串。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Customer Name]。
示例
RAWSQL_STR(“%1”, [Customer Name])
RAWSQLAGG_BOOL(“sql_expr”, [arg1], …[argN])
从给定聚合 SQL 表达式返回布尔结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。
示例
在示例中,%1 等于 [Sales],%2 等于 [Profit]。
RAWSQLAGG_BOOL(“SUM( %1) >SUM( %2)”, [Sales], [Profit])
RAWSQLAGG_DATE(“sql_expr”, [arg1], …[argN])
从给定聚合 SQL 表达式返回日期结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Order Date]。
示例
RAWSQLAGG_DATE(“MAX(%1)”,
[Order Date])
RAWSQLAGG_DATETIME(“sql_expr”, [arg1], …[argN])
从给定聚合 SQL 表达式返回日期和时间结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Delivery Date]。
示例
RAWSQLAGG_DATETIME(“MIN(%1)”, [Delivery Date])
RAWSQLAGG_INT(“sql_expr”, [arg1,] …[argN])
从给定聚合 SQL 表达式返回整数结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]。
示例
RAWSQLAGG_INT(“500
+ SUM(%1)”, [Sales])
RAWSQLAGG_REAL(“sql_expr”, [arg1,] …[argN])
从直接传递给基础数据库的给定聚合 SQL 表达式返回数字结果。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]
示例
RAWSQLAGG_REAL(“SUM( %1)”, [Sales])
RAWSQLAGG_STR(“sql_expr”, [arg1,] …[argN])
从直接传递给基础数据库的给定聚合 SQL 表达式返回字符串。在 SQL 表达式中将 %n 用作数据库值的替换语法。在此示例中,%1 等于 [Discount]。
示例
RAWSQLAGG_STR(“AVG(%1)”,
[Discount])
空间函数允许您执行高级空间分析,并将空间文件与其他格式的数据(如文本文件或电子表格)相结合。
AREA
语法 | AREA(Spatial Polygon, 'units') |
输出 | 数字 |
定义 | 返回 <spatial polygon> 的总表面积。 |
示例 | AREA([Geometry], 'feet') |
说明 | 支持的单位名称(计算时必须用引号括起来,例如
|
BUFFER
语法 | BUFFER(Spatial Point, distance, 'units')
|
输出 | 几何图形 |
定义 | 对于空间点,返回以 对于线串,计算通过包含距线串的半径距离内的所有点而形成的多边形。 |
示例 | BUFFER([Spatial Point Geometry], 25, 'mi') BUFFER(MAKEPOINT(47.59, -122.32), 3, 'km') BUFFER(MAKELINE(MAKEPOINT(0, 20),MAKEPOINT (30, 30)),20,'km')) |
说明 | 支持的单位名称(计算时必须用引号括起来,例如
|
DISTANCE
语法 | DISTANCE(SpatialPoint1, SpatialPoint2, 'units') |
输出 | 数字 |
定义 | 以指定 <unit> 返回两点之间的距离测量值。 |
示例 | DISTANCE([Origin Point],[Destination Point], 'km') |
说明 | 支持的单位名称(计算时必须用引号括起来,例如
|
数据库限制 | 此函数只能使用实时连接创建,但在将数据源转换为数据提取的情况下将继续工作。 |
INTERSECTS
语法 | INTERSECTS (geometry1, geometry2) |
输出 | 布尔值 |
定义 | 返回 true 或 false,指示两个几何图形是否在空间中重叠。 |
说明 | 支持的组合:点/多边形、线/多边形和多边形/多边形。 |
MAKELINE
语法 | MAKELINE(SpatialPoint1, SpatialPoint2) |
输出 | 几何图形(线) |
定义 | 在两点之间生成线标记 |
示例 | MAKELINE(MAKEPOINT(47.59, -122.32), MAKEPOINT(48.5, -123.1)) |
说明 | 对于构建出发地-目的地地图很有用。 |
MAKEPOINT
语法 | MAKEPOINT(latitude, longitude, [SRID]) |
输出 | 几何图形(点) |
定义 | 将数据从 如果添加了可选的 |
示例 | MAKEPOINT(48.5, -123.1) MAKEPOINT([AirportLatitude], [AirportLongitude]) MAKEPOINT([Xcoord],[Ycoord], 3493) |
说明 |
您可以使用 |
LENGTH
语法 | LENGTH(geometry, 'units') |
输出 | 数字 |
定义 | 使用给定的 <units> 返回 <geometry> 中的一个或多个线串的大地路径长度。 |
示例 | LENGTH([Spatial], 'metres') |
说明 | 如果 geometry 参数没有线串,则结果为 <NaN> ,但允许使用其他元素。 |
OUTLINE
语法 | OUTLINE(spatial polygon) |
输出 | 几何图形 |
定义 | 将多边形几何图形转换为线串。 |
说明 | 对于为轮廓创建单独的图层很有用,该图层的样式可以与填充不同。 支持多边形内的多边形。 |
SHAPETYPE
语法 | SHAPETYPE(geometry) |
输出 | 字符串 |
定义 | 返回描述空间 <geometry> 结构的字符串,例如 Empty、Point、MultiPoint、LineString、MultiLinestring、Polygon、MultiPolygon、Mixed 和 unsupported。 |
示例 | SHAPETYPE(MAKEPOINT(48.5, -123.1)) = "Point" |
VALIDATE
语法 | VALIDATE(spatial geometry) |
输出 | 几何图形 |
定义 | 确认空间值中几何图形的拓扑正确性。如果由于诸如面的周长与自身相交等问题而导致该值无法用于分析,则结果将为 null。如果几何图形正确,结果将是原始几何图形。 |
示例 |
|
正则表达式
REGEXP_REPLACE(字符串, 模式, 替换字符串)
返回给定字符串的副本,其中正则表达式模式被替换字符串取代。此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Snowflake 和 Oracle 数据源。
对于 Tableau 数据提取,模式和替换字符串必须为常量。
有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守 ICU(Unicode 国际化组件)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。
示例
REGEXP_REPLACE('abc 123', '\s', '-') = 'abc-123'
REGEXP_MATCH(字符串, 模式)
如果指定的字符串的子字符串匹配正则表达式模式,则返回 true。此函数可用于文本文件、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Impala 2.3.0(通过 Cloudera Hadoop 数据源)、Snowflake 和 Oracle 数据源。
对于 Tableau 数据提取,模式必须为常量。
有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守 ICU(Unicode 国际化组件)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。
示例
REGEXP_MATCH('-([1234].[The.Market])-','\[\s*(\w*\.)(\w*\s*\])')=true
REGEXP_EXTRACT(string, pattern)
返回与正则表达式模式匹配的字符串部分。此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Snowflake 和 Oracle 数据源。
对于 Tableau 数据提取,模式必须为常量。
有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守 ICU(Unicode 国际化组件)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。
示例
REGEXP_EXTRACT('abc 123', '[a-z]+\s+(\d+)') = '123'
REGEXP_EXTRACT_NTH(string, pattern, index)
返回与正则表达式模式匹配的字符串部分。子字符串匹配到第 n 个捕获组,其中 n 是给定的索引。如果索引为 0,则返回整个字符串。此函数可用于文本文件、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)和 Oracle 数据源。
对于 Tableau 数据提取,模式必须为常量。
有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守 ICU(Unicode 国际化组件)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。
示例
REGEXP_EXTRACT_NTH('abc 123', '([a-z]+)\s+(\d+)', 2) = '123'
Hadoop Hive 的特定函数
注意:只有 PARSE_URL 和 PARSE_URL_QUERY 函数可用于 Cloudera Impala 数据源。
GET_JSON_OBJECT(JSON 字符串, JSON 路径)
根据 JSON 路径返回 JSON 字符串中的 JSON 对象。
PARSE_URL(字符串, url_part)
返回给定 URL 字符串的组成部分(由 url_part 定义)。有效的 url_part 值包括:'HOST'、'PATH'、'QUERY'、'REF'、'PROTOCOL'、'AUTHORITY'、'FILE' 和 'USERINFO'。
示例
PARSE_URL('http://www.tableau.com', 'HOST') = 'www.tableau.com'
PARSE_URL_QUERY(字符串, 密钥)
返回给定 URL 字符串中的指定查询参数的值。查询参数由密钥定义。
示例
PARSE_URL_QUERY('http://www.tableau.com?page=1&cat=4', 'page') = '1'
XPATH_BOOLEAN(XML 字符串, XPath 表达式字符串)
如果 XPath 表达式匹配节点或计算为 true,则返回 true。
示例
XPATH_BOOLEAN('<values> <value id="0">1</value><value id="1">5</value>', 'values/value[@id="1"] = 5') = true
XPATH_DOUBLE(XML 字符串, XPath 表达式字符串)
返回 XPath 表达式的浮点值。
示例
XPATH_DOUBLE('<values><value>1.0</value><value>5.5</value> </values>', 'sum(value/*)') = 6.5
XPATH_FLOAT(XML 字符串, XPath 表达式字符串)
返回 XPath 表达式的浮点值。
示例
XPATH_FLOAT('<values><value>1.0</value><value>5.5</value> </values>','sum(value/*)') = 6.5
XPATH_INT(XML 字符串, XPath 表达式字符串)
返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。
示例
XPATH_INT('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6
XPATH_LONG(XML 字符串, XPath 表达式字符串)
返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。
示例
XPATH_LONG('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6
XPATH_SHORT(XML 字符串, XPath 表达式字符串)
返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。
示例
XPATH_SHORT('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6
XPATH_STRING(XML 字符串, XPath 表达式字符串)
返回第一个匹配节点的文本。
示例
XPATH_STRING('<sites ><url domain="org">http://www.w3.org</url> <url domain="com">http://www.tableau.com</url></sites>', 'sites/url[@domain="com"]') = 'http://www.tableau.com'
Google BigQuery 的特定函数
DOMAIN(string_url)
在给定 URL 字符串的情况下返回作为字符串的域。
示例
DOMAIN('http://www.google.com:80/index.html') = 'google.com'
GROUP_CONCAT(表达式)
将来自每个记录的值连接为一个由逗号分隔的字符串。此函数在处理字符串时的作用类似于 SUM()。
示例
GROUP_CONCAT(Region) = "Central,East,West"
HOST(string_url)
在给定 URL 字符串的情况下返回作为字符串的主机名。
示例
HOST('http://www.google.com:80/index.html') = 'www.google.com:80'
LOG2(数字)
返回数字的对数底 2。
示例
LOG2(16) = '4.00'
LTRIM_THIS(字符串, 字符串)
返回第一个字符串(移除了在前导位置出现的任何第二个字符串)。
示例
LTRIM_THIS('[-Sales-]','[-') = 'Sales-]'
RTRIM_THIS(字符串, 字符串)
返回第一个字符串(移除了在尾随位置出现的任何第二个字符串)。
示例
RTRIM_THIS('[-Market-]','-]') = '[-Market'
TIMESTAMP_TO_USEC(表达式)
将 TIMESTAMP 数据类型转换为 UNIX 时间戳(以微秒为单位)。
示例
TIMESTAMP_TO_USEC(#2012-10-01 01:02:03#)=1349053323000000
USEC_TO_TIMESTAMP(表达式)
将 UNIX 时间戳(以微秒为单位)转换为 TIMESTAMP 数据类型。
示例
USEC_TO_TIMESTAMP(1349053323000000) = #2012-10-01 01:02:03#
TLD(string_url)
在给定 URL 字符串的情况下,返回 URL 中的顶层域以及的任何国家/地区域。
示例
TLD('http://www.google.com:80/index.html') = '.com'
TLD('http://www.google.co.uk:80/index.html') = '.co.uk'
想要了解函数的更多信息?
请阅读函数主题(链接在新窗口中打开)。