表达式列表

有关表达式的介绍,请参阅自定义表达式概述

聚合

聚合表达式会考虑字段中的所有值。它们只能在查询构建器的 **汇总** 部分使用。

Average (平均值)

返回列中值的平均值。

语法: Average(column)

示例: Average([Quantity]) 会返回 Quantity 字段的平均值。

Count (计数)

返回所选数据中的行数(也称为记录数)。

语法: Count()

示例: Count() 如果一个表或结果返回 10 行,Count 将返回 10

CountIf (条件计数)

仅在条件为真时才对行进行计数。

语法: CountIf(condition)

示例: CountIf([Subtotal] > 100) 会返回小计大于 100 的行数。

Distinct (去重计数)

此列中不同值的数量。

语法: Distinct(column)

示例: Distinct([Last Name])。返回列中唯一的姓氏数量。重复项(例如姓氏“Smith”)不计算在内。

DistinctIf (条件去重计数)

返回列中条件为真的不同值的数量。

语法: DistinctIf(column, condition)

示例: DistinctIf([ID], [Category] = "Gizmo") 会返回 Category 列为“Gizmo”的唯一 ID 的数量。

Max (最大值)

返回列中找到的最大值。

语法: Max(column)

示例: Max([Age]) 会返回 Age 列中所有值中的最大年龄。

相关: Min, Average, Median

Median (中位数)

返回指定列的中位数。

语法: Median(column)

示例: Median([Age]) 会找到年龄的中点,即一半的年龄比它大,一半的年龄比它小。

不支持 median 的数据库:Druid, MariaDB, MongoDB, MySQL, SQLite, Vertica, 和 SQL Server。Presto 仅提供近似结果。

相关: Min, Max, Average

Min (最小值)

返回列中找到的最小值。

语法: Min(column)

示例: Min([Salary]) 会在 Salary 列中所有薪水中找到最低的薪水。

相关: Max, Median, Average

Percentile (百分位数)

返回列在百分位数处的值。

语法: Percentile(column, percentile-value)

示例: Percentile([Score], 0.9) 会返回该列所有值中第 90 个百分位数的值。

不支持 percentile 的数据库:Druid, H2, MariaDB, MySQL, MongoDB, SQL Server, SQLite, Vertica。Presto 仅提供近似结果。

Share (份额)

以小数形式返回数据中符合条件的行的百分比。

语法: Share(condition)

示例: Share([Color] = "Blue") 会返回 Color 字段设置为 Blue 的行数,再除以总行数。

StandardDeviation (标准差)

计算列的标准差,这是衡量一组值变化程度的指标。低标准差表示值聚集在平均值周围,而高标准差表示值分布在更宽的范围内。

语法: StandardDeviation(column)

示例: StandardDeviation([Population]) 会返回 Population 列中值的标准差。

不支持 StandardDeviation 的数据库:Druid, SQLite。

Sum (求和)

将列的所有值相加。

语法: Sum(column)

示例: Sum([Subtotal]) 会将 Subtotal 列中的所有值相加。

SumIf (条件求和)

仅在条件为真时对指定列求和。

语法: SumIf(column, condition)

示例:SumIf([Subtotal], [Order Status] = "Valid") 会将状态为“Valid”的订单的所有小计相加。

Variance (方差)

返回给定列的数值方差。

语法: Variance(column)

示例: Variance([Temperature]) 将返回一个衡量该列中所有温度与平均温度离散程度的指标。

相关: StandardDeviation, Average

不支持 Variance 的数据库:Druid, SQLite。

函数

函数表达式适用于每个单独的值。它们可用于更改或筛选列中的值,或创建新的自定义列。

逻辑函数

逻辑函数判断条件是否满足,或根据条件确定返回什么值。

between (介于)

如果日期或数字列的值在指定范围内,则返回 true。否则返回 false。

语法: between(column, start, end)

示例: 如果您使用表达式 between([Created At], "2019-01-01", "2020-12-31") 进行筛选,Metabase 将返回对该表达式返回 true 的行,在本例中是 Created At 日期落在 2019 年 1 月 1 日和 2020 年 12 月 31 日 *之间* 的范围,包括开始日期 (2019-01-01) 和结束日期 (2020-12-31)。

相关: interval

case (条件)

case (别名 if) 根据一个条件列表测试一个表达式,并返回第一个匹配条件对应的值,如果没有任何匹配,则可以提供一个可选的默认值。

语法: case(condition, output, …)

示例: case([Weight] > 200, "Large", [Weight] > 150, "Medium", "Small") 如果 Weight 是 250,表达式将返回“Large”。在这种情况下,默认值是“Small”,所以任何小于等于 150 的 Weight 都将返回“Small”。

coalesce (合并)

按顺序查看每个参数中的值,并为每一行返回第一个非空值。

语法: coalesce(value1, value2, …)

示例: coalesce([Comments], [Notes], "No comments")。如果该行的 CommentsNotes 列都为空,则表达式将返回字符串“No comments”。

if (如果)

ifcase 的别名。根据一个条件列表测试一个表达式,并返回第一个匹配条件对应的值,如果没有任何匹配,则可以提供一个可选的默认值。

语法: if(condition, output, ...)

示例: if([Weight] > 200, "Large", [Weight] > 150, "Medium", "Small") 如果 Weight 是 250,表达式将返回“Large”。在这种情况下,默认值是“Small”,所以任何小于等于 150 的 Weight 都将返回“Small”。

in (在...之中)

如果 value1 等于 value2(或 value3 等,如果指定),则返回 true。

语法: in(value1, value2, ...)

  • value1: 要检查的列或值。
  • value2, ...: 用于对照检查的列或值的列表。

您可以添加更多要对照检查的值。

示例: in([Category], "Widget", "Gadget") 会为 Category 是“Widget”或“Gadget”的行返回 true。

相关: notIn, contains, startsWith, endsWith

isNull (是否为空)

如果列为空,则返回 true。

语法: isNull(column)

示例: isNull([Tax]) 如果该行的列中没有值,则会返回 true。

相关: notNull, isEmpty

notNull (是否非空)

如果列中包含值,则返回 true。

语法: notNull(column)

示例: notNull([Tax]) 如果该行的列中有值存在,则会返回 true。

相关: isNull, notEmpty

notIn (不在...之中)

如果 value1 不等于 value2(以及 value3 等,如果指定),则返回 true。

语法: notIn(value1, value2, ...)

  • value1: 要检查的列或值。
  • value2, ...: 要查找的列或值。

您可以添加更多要查找的值。

示例: notIn([Category], "Widget", "Gadget") 会为 Category 不是“Widget”或“Gadget”的行返回 true。

相关: in, case

数学函数

数学函数实现常见的数学运算。

abs (绝对值)

返回指定列的绝对值(正值)。

语法: abs(column)

示例: abs([Debt])。如果 Debt 是 -100,abs(-100) 会返回 100

ceil (向上取整)

将小数向上舍入(ceil 意为天花板)。

语法: ceil(column)

示例: ceil([Price])ceil(2.99) 会返回 3。

相关: floor, round

exp (指数)

返回欧拉数 e 的所提供数字的次幂。(Euler 的发音类似于“Oy-ler”)。

语法: exp(column)

示例: exp([Interest Months])

相关: power

floor (向下取整)

将小数向下舍入。

语法: floor(column)

示例: floor([Price])。如果 Price 是 1.99,表达式将返回 1。

相关: ceil, round

log (对数)

返回数字的以 10 为底的对数。

语法: log(column)

示例: log([Value])

power (幂)

将一个数提高到指数值的幂。

语法: power(column, exponent)

示例: power([Length], 2)。如果长度是 3,表达式将返回 9(3 的二次方是 3*3)。

不支持 power 的数据库:SQLite。

相关: exp

round (四舍五入)

将小数向上或向下舍入到最接近的整数值。

语法: round(column)

示例: round([Temperature])。如果温度是 13.5 摄氏度,表达式将返回 14

示例: round([Temperature] * 10) / 10。如果温度是 100.75,表达式将返回 100.8

sqrt (平方根)

返回一个值的平方根。

语法: sqrt(column)

示例: sqrt([Hypotenuse])

不支持 sqrt 的数据库:SQLite。

相关: power

字符串函数

字符串函数操作或验证字符串数据。

concat (连接)

将两个或多个字符串连接在一起。

语法: concat(value1, value2, …)

示例: concat([Last Name], ", ", [First Name]) 会生成一个格式为“姓, 名”的字符串,如“Palazzo, Enrico”。

contains (包含)

检查 string1 是否包含 string2

默认执行区分大小写的匹配。您可以传递一个可选参数 "case-insensitive" 来执行不区分大小写的匹配。

语法: contains(string1, string2) 用于区分大小写的匹配。

contains(string1, string2, "case-insensitive") 用于不区分大小写的匹配。

示例: contains([Status], "Class")

如果 Status 是“Classified”,表达式将返回 true。如果 Status 是“classified”,表达式将返回 false,因为大小写不匹配。

相关: doesNotContain, regexExtract

date (日期)

不适用于 Oracle 或非 JDBC 的 Apache Druid 驱动程序。

  • 当用于字符串时,将 ISO 8601 日期字符串转换为日期。该字符串*必须*是有效的 ISO 8601 格式。如果字符串包含时间,时间部分将被截断。
  • 当用于日期时间值时,将日期时间截断为日期。

语法: date(value)

示例: date("2025-03-20") 会返回一个日期值,以便您可以在查询构建器中使用所有日期功能:按月分组、按过去 30 天筛选等。

ISO 8601 标准格式

  • 年 (YYYY): 2025
  • 月 (MM): 03
  • 日 (DD): 25
  • 时间分隔符 (T)
  • 小时 (HH): 14
  • 分钟 (MM): 30
  • 秒 (SS): 45
  • UTC 时区指示符 (Z)

有效的 ISO 8601 示例包括

  • 仅日期: 2025-03-25
  • 带时间的日期: 2025-03-25T14:30:45
  • 带时间和时区偏移的日期: 2025-03-25T14:30:45+01:00

另一个例子: date(2025-04-19T17:42:53+01:00) 会返回 2025-04-19

相关: datetime

datetime (日期时间)

适用于 PostgreSQL, MySQL/MariaDB, BigQuery, Redshift, ClickHouse, 和 Snowflake

将日期时间字符串或字节转换为日期时间。

语法: datetime(value, mode)

  • value: 要转换为日期时间的字符串、字节或数字。
  • mode: 可选。指示格式的模式。可选值为:"simple", "iso", "simpleBytes", "isoBytes", "unixSeconds", "unixMilliseconds", "unixMicroseconds", "unixNanoseconds"。默认为 "iso"

示例: datetime("2025-03-20 12:45:04")

datetime 支持以下日期时间字符串格式

2025-05-15T22:20:01
2025-05-15 22:20:01

但一些数据库也可能支持其他日期时间格式。

相关: date

doesNotContain (不包含)

检查 string1 是否包含 string2

默认执行区分大小写的匹配。您可以传递一个可选参数 "case-insensitive" 来执行不区分大小写的匹配。

语法: doesNotContain(string1, string2) 用于区分大小写的匹配。

doesNotContain(string1, string2, "case-insensitive") 用于不区分大小写的匹配。

示例: doesNotContain([Status], "Class")。如果 Status 是“Classified”,表达式将返回 false

相关: contains, regexExtract

domain (域名)

从 URL 或电子邮件中提取域名。

语法: domain(urlOrEmail)

示例: domain([Page URL])。如果 [Page URL] 列的值为 https://metabase.net.cndomain([Page URL]) 将返回 metabasedomain([Email]) 将从 hello@metabase.com 中提取 metabase

相关: host, path, subdomain

endsWith (以...结尾)

如果文本的结尾与比较文本匹配,则返回 true。

默认执行区分大小写的匹配。您可以传递一个可选参数 "case-insensitive" 来执行不区分大小写的匹配。

语法: endsWith(text, comparison) 用于区分大小写的匹配。

endsWith(text, comparison, "case-insensitive") 用于不区分大小写的匹配。

示例: endsWith([Appetite], "hungry")

相关: startsWith, contains, doesNotContain

float (浮点数)

适用于 PostgreSQL, MySQL/MariaDB, BigQuery, Redshift, ClickHouse, 和 Snowflake。

将字符串转换为浮点数值。如果您的数据以字符串形式存储,但您想对数字进行一些数学运算,这很有用。

语法: float(value)

示例: float("123.45") 会返回 123.45 作为浮点数值。

host (主机)

从 URL 或电子邮件中提取主机,即域名和顶级域名 (TLD)。

语法: host(urlOrEmail)

示例: host([Page URL])。如果 [Page URL] 列的值为 https://metabase.net.cnhost([Page URL]) 将返回 metabase.comhost([Email]) 将从 hello@metabase.com 中提取 metabase.com

相关: domain, path, subdomain

isEmpty (是否为空)

如果*字符串列*包含空字符串或为 null,则返回 true。在非字符串列上调用此函数将导致错误。您可以使用 isNull 来处理非字符串列。

语法: isEmpty(column)

示例: isEmpty([Feedback]) 如果 Feedback 是一个空字符串 ('') 或没有值,则返回 true。

相关: notEmpty, isNull

integer (整数)

仅适用于 BigQuery, ClickHouse, MySQL, PostgreSQL, Amazon Redshift, 和 Snowflake。

  • 将字符串转换为整数值。如果您的数据以字符串形式存储,但您想对数字进行一些数学运算,这很有用。
  • 通过将其四舍五入为整数来转换浮点数值。

语法: integer(value)

字符串示例: integer("123") 会返回 123 作为整数。该字符串必须能计算为整数(所以 integer("123.45") 会返回错误)。

浮点数示例: integer(123.45) 会返回 123

相关: round

lTrim (左修剪)

从文本字符串中移除前导空白。

语法: lTrim(text)

示例: lTrim([Comment])。如果评论是 " I'd prefer not to"lTrim 会返回 "I'd prefer not to"

相关: trimrTrim

length (长度)

返回文本中的字符数。

语法: length(text)

示例: length([Comment])。如果 comment 是“wizard”,length 会返回 6(“wizard”有六个字符)。

lower (小写)

返回全部小写的文本字符串。

语法: lower(text)

示例: lower([Status])。如果 Status 是“QUIET”,表达式将返回“quiet”。

相关: upper

notEmpty (是否非空)

如果*字符串列*包含一个非空字符串的值,则返回 true。在非字符串列上调用此函数将导致错误。您可以在非字符串列上使用 notNull

语法: notEmpty(column)

示例: notEmpty([Feedback]) 如果 Feedback 包含一个非空字符串 ('') 的值,则返回 true。

相关: isEmpty, isNull, notNull

path (路径)

从 URL 中提取路径名。

语法: path(url)

示例: path([Page URL])。例如,path("https://www.example.com/path/to/page.html?key1=value") 会返回 /path/to/page.html

相关: domain, host, subdomain

regexExtract (正则提取)

⚠️ regexExtract 在 MongoDB、SQLite 和 SQL Server 中不可用。对于 Druid,regexExtract 仅适用于 Druid-JDBC 驱动程序。

根据正则表达式提取匹配的子字符串。

语法:regexExtract(text, regular_expression)

示例:regexExtract([Address], "[0-9]+")

不支持 regexExtract 的数据库:H2、SQL Server、SQLite。

相关:containsdoesNotContainsubstring

replace (替换)

将输入文本中所有出现的搜索文本替换为替换文本。

语法:replace(text, find, replace)

示例:replace([Title], "Enormous", "Gigantic")

splitPart (分割)

在 PostgreSQL、MySQL/MariaDB、BigQuery、Redshift、Clickhouse 和 Snowflake 中可用

在指定的分隔符上拆分字符串并返回第 n 个子字符串。

语法:splitPart(text, delimiter, position)

text:要返回其一部分的列或文本。

delimiter:描述每次拆分应在何处发生的模式。

position:拆分后要返回哪个子字符串。索引从位置 1 开始。

示例:splitPart([Date string], " ", 1)。如果 Date string 的值为 "2024-09-18 16:55:15.373733-07"splitPart 会返回 "2024-09-18",因为它按空格 (" ") 拆分数据,并取第一部分(索引为 1 的子字符串)。

另一个示例:splitPart("First name, Middle Name, Last name", ", ", 3) 会返回 "Last Name"(因为我们使用逗号和空格 ", " 作为分隔符将字符串拆分为多个部分,并取第三个子字符串)。

rTrim (右修剪)

从文本字符串中移除尾部空白。

语法:rTrim(text)

示例:rTrim([Comment])。如果评论是“Fear is the mindkiller. ”,该表达式将返回“Fear is the mindkiller.”

相关:trimlTrim

startsWith (以...开头)

如果文本的开头与比较文本匹配,则返回 true。默认执行区分大小写的匹配。您可以传递一个可选参数 "case-insensitive" 来执行不区分大小写的匹配。

语法:startsWith(text, comparison) 用于区分大小写的匹配。

startsWith(text, comparison, "case-insensitive") 用于不区分大小写的匹配。

示例:startsWith([Course Name], "Computer Science") 对于以“Computer Science”开头的课程名称(如“Computer Science 101: An introduction”)将返回 true。

对于“Computer science 201: Data structures”将返回 false,因为“science”的大小写与比较文本中的大小写不匹配。

startsWith([Course Name], "Computer Science", "case-insensitive") 对于“Computer Science 101: An introduction”和“Computer science 201: Data structures”都将返回 true。

相关:endsWithcontainsdoesNotContain

subdomain (子域名)

从 URL 中提取子域。忽略 www(返回一个空字符串)。

语法:subdomain(url)

示例:subdomain([Page URL])。如果 [Page URL] 列的值为 https://status.metabase.comsubdomain([Page URL]) 将返回 status

相关:domainhostpath

substring (子字符串)

返回所提供文本的一部分,由起始位置和长度指定。

语法:substring(text, position, length)

示例:substring([Title], 1, 10) 返回字符串的前 10 个字母(字符串索引从位置 1 开始)。

相关:regexExtractreplace

text (文本)

对于非 JDBC 的 Druid 驱动程序不可用

将数字或日期转换为文本(字符串)。可用于应用文本筛选器或基于文本比较与其他列进行连接。

语法:text(value)

示例:text(Created At]) 将获取一个日期时间 (Created At) 并返回转换后的字符串(如 "2024-03-17 16:55:15.373733-07")。

trim (修剪)

从文本字符串中移除前导和尾部空白。

语法:trim(text)

示例:trim([Comment]) 将移除评论两侧的任何空白字符。

upper (大写)

返回全大写的文本。

语法:upper(text)

示例:upper([Status])。如果状态是“hyper”,upper("hyper") 将返回“HYPER”。

相关:lower

日期函数

日期函数用于操作、提取或创建日期和时间值。

convertTimezone (转换时区)

将日期或时间戳值转换为指定的时区。

语法:convertTimezone(column, target, source)

示例:convertTimezone("2022-12-28T12:00:00", "Canada/Pacific", "Canada/Eastern") 将返回值 2022-12-28T09:00:00,显示为 December 28, 2022, 9:00 AM

请参阅 convertTimezone数据库限制

datetimeAdd (日期时间相加)

向日期或时间戳值添加某个时间单位。

语法:datetimeAdd(column, amount, unit)

示例:datetimeAdd("2021-03-25", 1, "month") 将返回值 2021-04-25,显示为 April 25, 2021

amount 必须是整数,不能是小数。例如,您不能添加“半年”(0.5)。

相关:betweendatetimeSubtract

datetimeDiff (日期时间差)

以某个时间单位返回两个日期时间之间的差值。例如,datetimeDiff(d1, d2, "day") 将返回 d1d2 之间的天数。

语法:datetimeDiff(datetime1, datetime2, unit)

示例:datetimeDiff("2022-02-01", "2022-03-01", "month") 将返回 1

请参阅 datetimediff数据库限制

datetimeSubtract (日期时间相减)

从日期或时间戳值中减去某个时间单位。

语法:datetimeSubtract(column, amount, unit)

示例:datetimeSubtract("2021-03-25", 1, "month") 将返回值 2021-02-25,显示为 February 25, 2021

amount 必须是整数,不能是小数。例如,您不能减去“半年”(0.5)。

相关:betweendatetimeAdd

day (天)

接收一个日期时间,并返回月份中的天数(作为整数)。

语法:day([datetime column])

示例:day("2021-03-25T12:52:37") 将返回天数作为整数 25

dayName (星期名)

根据星期几的数字(1-7),返回本地化的星期名称。遵循每周第一天设置

语法:dayName(dayNumber)

示例:dayName(1) 将返回 Sunday,除非您更改每周第一天设置

相关:quarterNamemonthName

hour (小时)

接收一个日期时间,并返回小时(0-23)作为整数。

语法:hour([datetime column])

示例:hour("2021-03-25T12:52:37") 将返回 12

interval (间隔)

检查日期列的值是否在相对范围内。

语法:interval(column, number, text)

示例:interval([Created At], -1, "month")

number 必须是整数。您不能使用小数值。

相关:between

minute (分钟)

接收一个日期时间,并返回分钟(0-59)作为整数。

语法:minute([datetime column])

示例:minute("2021-03-25T12:52:37") 将返回 52

month (月)

接收一个日期时间,并返回月份编号(1-12)作为整数。

语法:month([datetime column])

示例:month("2021-03-25T12:52:37") 将返回月份作为整数 3

monthName (月份名)

返回给定月份的本地化短名称。

语法:monthName([Birthday Month])

示例:monthName(10) 将返回十月的 Oct

相关:dayNamequarterName

now (现在)

使用您的 Metabase 报告时区返回当前日期和时间。

语法:now()

quarter (季度)

接收一个日期时间,并返回年份中的季度编号(1-4)作为整数。

语法:quarter([datetime column])

示例:quarter("2021-03-25T12:52:37") 将返回第一季度的 1

quarterName (季度名)

给定季度编号(1-4),返回一个类似 Q1 的字符串。

语法:quarterName([Fiscal Quarter])

示例:quarterName(3) 将返回 Q3

相关:dayNamemonthName

relativeDateTime (相对日期时间)

获取相对于当前时间的时间戳。

语法:relativeDateTime(number, text)

number:时间间隔的周期,负值表示过去的时间。number 必须是整数。您不能使用小数值。

text:时间间隔的类型,如 "day""month""year"

请注意,relativeDateTime() 会将结果截断到其参数中指定的单位。

示例:[Orders → Created At] < relativeDateTime(-30, "day") 将筛选出从当前日期起 30 天前创建的订单。

相关:datetimeAdddatetimeSubtract

second (秒)

接收一个日期时间,并返回分钟内的秒数(0-59)作为整数。

语法:second([datetime column])

示例:second("2021-03-25T12:52:37") 将返回整数 37

timeSpan (时间跨度)

获取指定长度的时间间隔。

语法:timeSpan(number, text)

number:时间间隔的周期,负值表示过去的时间。number 必须是整数。您不能使用小数值。

text:时间间隔的类型,如 "day""month""year"

示例:[Orders → Created At] + timeSpan(7, "day") 将返回 Created At 日期之后 7 天的日期。

today (今天)

返回当前日期(不含时间)。

语法:today()

示例:today() 将返回当前日期,如 2025-05-04

相关:now

week (周)

接收一个日期时间,并返回周数作为整数。

语法:week(column, mode)

示例:week("2021-03-25T12:52:37") 将返回周数作为整数,即 12

  • column:日期或日期时间值所在的列名。
  • mode:可选。
    • ISO:(默认)第 1 周从一月第一个星期四之前的星期一开始。
    • US:第 1 周从 1 月 1 日开始。所有其他周从星期日开始。
    • Instance:第 1 周从 1 月 1 日开始。所有其他周从您的 Metabase 本地化设置中定义的那天开始。

请注意,在查询构建器中按年中的周进行汇总时,使用的是一种不同的模式来确定第一周,更多信息请参阅年中的周

weekday (工作日)

接收一个日期时间,并返回一个整数(1-7),表示星期几。

语法:weekday(column)

  • column:日期时间列。

示例

case(
  weekday([Created At]) = 1, "Sunday",
  weekday([Created At]) = 2, "Monday",
  weekday([Created At]) = 3, "Tuesday",
  weekday([Created At]) = 4, "Wednesday",
  weekday([Created At]) = 5, "Thursday",
  weekday([Created At]) = 6, "Friday",
  weekday([Created At]) = 7, "Saturday")

year (年)

接收一个日期时间,并返回年份作为整数。

语法:year([datetime column])

示例:year("2021-03-25T12:52:37") 将返回年份 2021 作为整数 2,021

类型转换函数

窗口函数

窗口函数只能在**汇总**部分使用。它们不能用于创建自定义列或自定义筛选器。

CumulativeCount (累积计数)

更多信息,请查看我们的累积函数页面。

跨分组的行数累加总计。

语法:CumulativeCount()

CumulativeSum (累积求和)

更多信息,请查看我们的累积函数页面。

跨分组的列的滚动总和。

语法:CumulativeSum(column)

示例:CumulativeSum([Subtotal])

相关:SumSumIf

Offset (偏移)

⚠️ Offset 函数目前在 MySQL/MariaDB、ClickHouse、MongoDB 和 Druid 中不可用。

更多信息,请查看我们的Offset页面。

返回另一行中表达式的值。Offset 只能在查询构建器的“汇总”步骤中使用(您不能使用 Offset 创建自定义列)。

语法:Offset(expression, rowOffset)

expression 是要从不同行获取的值。

rowOffset 是相对于当前行的行数。例如,-1 表示上一行,1 表示下一行。

示例:Offset(Sum([Total]), -1) 将获取上一行的 Sum([Total]) 值。

限制

数据库限制

上面已注明每个聚合和函数的限制,这里是摘要

H2(包括 Metabase 示例数据库):MedianPercentileconvertTimezoneregexExtractdatetimefloatsplitPart

AthenaconvertTimezonedatetimefloatsplitPart

DatabricksconvertTimezonedatetimefloatsplitPart

DruidMedianPercentileStandardDeviationpowerlogexpsqrtOffsetdatetimefloatsplitPart。函数 regexExtract 和一些类型转换函数仅适用于 Druid-JDBC 驱动程序。

MongoDBMedianPercentilepowerlogexpsqrtOffsetregexExtractdatetimefloatsplitPart

MariaDBMedianPercentileOffset

MySQLMedianPercentileOffset

OracledatedatetimefloatsplitPart

PrestoconvertTimezonedatetimefloatsplitPart。对于 MedianPercentile 仅提供*近似*结果。

SparkSQLconvertTimezonedatetimefloatsplitPart

SQL ServerMedianPercentileregexExtractdatetimefloatsplitPart

SQLiteexplogMedianPercentilepowerregexExtractStandardDeviationsqrtVariancedatetimefloatsplitPart

VerticaMedianPercentiledatetimefloatsplitPart

如果您正在使用或维护第三方数据库驱动程序,请参考维基了解您的驱动程序可能受到的影响。

要了解更多信息,请查看我们关于查询构建器中自定义表达式的教程。

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想要改进这些文档?提出更改建议。
© . This site is unofficial and not affiliated with Metabase, Inc.