文档文档

SQL 数组函数

使用数组函数在 SQL 查询中创建和操作 Arrow 数组或列表。

array_any_value

返回数组中的第一个非空元素。

array_any_value(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_any_value

查看 array_any_value 示例

array_append

将元素附加到数组的末尾。

array_append(array, element)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • element:要附加到数组的元素。

别名

  • list_append
  • array_push_back
  • list_push_back

查看 array_append 示例

array_cat

array_concat 的别名。

array_concat

将多个数组连接成一个数组。

array_concat(array[, ..., array_n])

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • array_n:要连接的后续数组列或字面数组。

别名

  • array_cat
  • list_concat
  • list_cat

查看 array_concat 示例

array_contains

array_has 的别名。

array_dims

返回数组维度的数组。

array_dims(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_dims

查看 array_dims 示例

array_distance

返回两个等长输入数组之间的欧几里得距离。

array_distance(array1, array2)

参数

  • array1:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • array2:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_distance

查看 array_distance 示例

array_distinct

返回数组中的唯一值,并删除重复项。

array_distinct(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_distinct

查看 array_distinct 示例

array_element

从数组中提取索引为 n 的元素。

array_element(array, index)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • index:用于从数组中提取元素的索引。

别名

  • array_extract
  • list_element
  • list_extract

查看 array_element 示例

array_empty

empty 的别名。

array_except

返回一个数组,其中包含第一个数组中不存在于第二个数组中的元素。

array_except(array1, array2)

参数

  • array1:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • array2:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_except

查看 array_except 示例

array_extract

array_element 的别名。

array_has

如果数组包含该元素,则返回 true

array_has(array, element)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • element:标量或数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_has
  • array_contains
  • list_contains

查看 array_has 示例

array_has_all

如果子数组的所有元素都存在于数组中,则返回 true

array_has_all(array, sub-array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • sub-array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_has_all

查看 array_has_all 示例

array_has_any

如果至少一个元素同时出现在两个数组中,则返回 true

array_has_any(array, sub-array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • sub-array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_has_any
  • arrays_overlap

查看 array_has_any 示例

array_indexof

array_position 的别名。

array_intersect

返回一个数组,其中仅包含同时出现在 array1array2 中的元素。

array_intersect(array1, array2)

参数

  • array1:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • array2:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_intersect

查看 array_intersect 示例(相交数组)

查看 array_intersect 示例(不相交数组)

array_join

array_to_string 的别名。

array_length

返回数组维度的长度。

array_length(array, dimension)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • dimension:数组维度。默认为 1

别名

  • list_length

查看 array_length 示例(单维数组)

查看 array_length 示例(多维数组)

array_max

返回数组中的最大值。

array_max(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_max

查看 array_max 示例

array_min

返回数组中的最小值。

array_min(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

查看 array_min 示例

array_ndims

返回数组的维度数。

array_ndims(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_ndims

查看 array_ndims 示例

array_pop_back

返回不包含最后一个元素的数组。

array_pop_back(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_pop_back

查看 array_pop_back 示例

array_pop_front

返回不包含第一个元素的数组。

array_pop_front(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_pop_front

查看 array_pop_front 示例

array_position

返回指定元素在数组中第一次出现的_位置_,如果未找到则返回 NULL

array_position(array, element, index)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • element:要在数组中搜索位置的元素。
  • index:开始搜索的索引(从 1 开始)。默认为 1

别名

  • list_position
  • array_indexof
  • list_indexof

查看 array_position 示例

查看 array_position 示例(带索引偏移)

array_positions

搜索数组中的元素,并返回每个出现的位置或索引。

array_positions(array, element)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • element:要在数组中搜索位置的元素。

别名

  • list_positions

查看 array_positions 示例

array_prepend

将元素添加到数组的开头。

array_prepend(element, array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • element:要添加到数组开头的元素。

别名

  • list_prepend
  • array_push_front
  • list_push_front

查看 array_prepend 示例

array_push_back

array_append 的别名。

array_push_front

array_prepend 的别名。

array_remove

删除数组中第一个等于给定值的元素。

array_remove(array, element)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • element:要从数组中删除的元素。

别名

  • list_remove

查看 array_remove 示例

array_remove_all

删除数组中所有等于指定值的元素。

array_remove_all(array, element)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • element:要从数组中删除的元素。

别名

  • list_remove_all

查看 array_remove_all 示例

array_remove_n

从数组中删除最多 max 个等于指定值的元素。

array_remove_n(array, element, max)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • element:要从数组中删除的元素。
  • max:要删除的最大出现次数。

别名

  • list_remove_n

查看 array_remove_n 示例

array_repeat

返回一个包含 count 次的元素的数组。

array_repeat(element, count)

参数

  • element:元素表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • count:重复元素的次数。

别名

  • list_repeat

查看 array_repeat 示例(数值)

查看 array_repeat 示例(字符串)

查看 array_repeat 示例(数组值)

array_replace

将指定元素第一次出现的位置替换为另一个指定元素。

array_replace(array, from, to)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • from:要替换的元素。
  • to:替换元素。

别名

  • list_replace

查看 array_replace 示例

array_replace_all

将指定元素的所有出现位置替换为另一个指定元素。

array_replace_all(array, from, to)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • from:要替换的元素。
  • to:替换元素。

别名

  • list_replace_all

查看 array_replace_all 示例

array_replace_n

将指定元素最多 max 次的出现位置替换为另一个指定元素。

array_replace_n(array, from, to, max)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • from:要替换的元素。
  • to:替换元素。
  • max:要替换的最大出现次数。

别名

  • list_replace_n

查看 array_replace_n 示例

array_resize

将列表的大小调整为包含 size 个元素。使用 value 初始化新元素。将数组大小调整为指定大小。如果扩展,则用指定值(或 NULL,如果未提供)填充新元素。如果收缩,则截断多余的元素。

array_resize(array, size, value)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • size:数组的新大小。
  • value:用于新元素的值。默认为 NULL

别名

  • list_resize

查看 array_resize 示例

array_reverse

返回元素顺序颠倒的数组。

array_reverse(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_reverse

查看 array_reverse 示例

array_slice

根据从 1 开始的起始和结束位置返回数组的切片。

array_slice(array, begin, end)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • begin:第一个元素的索引。如果为负数,则从数组末尾开始倒数。
  • end:最后一个元素的索引。如果为负数,则从数组末尾开始倒数。
  • stride:数组切片的步幅。默认为 1

别名

  • list_slice

查看 array_slice 示例

array_sort

对数组中的元素进行排序。如果元素是数字,则按数值顺序排序。如果元素是字符串,则按字典顺序排序。

array_sort(array, sort_order, sort_nulls)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • sort_order:排序顺序('ASC' _(默认)_ 或 'DESC')。
  • sort_nulls:将 NULL 值排在前面或后面('NULLS FIRST' _(默认)_ 或 'NULLS LAST')。

别名

  • list_sort

查看 array_sort 示例(数值)

查看 array_sort 示例(字符串)

查看 array_sort 示例(NULL 值)

array_to_string

通过使用指定的分隔符连接所有元素,将数组转换为字符串。

array_to_string(array, delimiter[, null_string])

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • delimiter:数组元素分隔符。
  • null_string:可选。用于替换数组中 NULL 值的字符串。如果未提供,则忽略 NULL 元素。

别名

  • list_to_string
  • array_join
  • list_join

查看 array_to_string 示例

查看 array_to_string 示例(NULL 替换)

array_union

返回一个包含两个数组中都存在的元素的数组(所有元素来自)。返回一个包含两个输入数组中的所有唯一元素的数组,并删除重复项。

array_union(array1, array2)

参数

  • array1:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。
  • array2:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • list_union

查看 array_union 示例

arrays_overlap

array_has_any 的别名。

cardinality

返回数组中的总元素数。

cardinality(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

查看 cardinality 示例

empty

对于空数组返回 true,对于非空数组返回 false

empty(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

别名

  • array_empty
  • list_empty

查看 empty 示例

flatten

将嵌套数组展平成单层数组。

  • 递归地展平任何嵌套深度的数组
  • 如果数组已经是扁平的,则不变地返回

结果包含所有嵌套数组中的所有元素,形成一个扁平的数组。

flatten(array)

参数

  • array:数组表达式。可以是常量、列或函数,以及任何数组运算符的组合。

查看 flatten 示例

generate_series

返回一个在指定 startstop 值之间生成的,以指定 step 为间隔的数组。

范围 start..stop 包含所有大于或等于 start 且小于或等于 stop 的值(start <= x <= stop)。如果 start 大于或等于 stopstart >= stop),则函数返回一个空数组。

generate_series 类似于 range,但包含上界(stop)在输出数组中。

generate_series(start, stop, step)

参数

  • start:序列的开始。支持整数、时间戳、日期或可强制转换为 Date32 的字符串类型。
  • stop:序列的上限。支持整数、时间戳、日期或可强制转换为 Date32 的字符串类型。类型必须与 start 相同。
  • step:以 step 递增(不能为 0)。小于一天的步长仅支持 TIMESTAMP 类型的范围。

range

查看 generate_series 示例

查看 range 示例(日期)

查看 generate_series 示例(时间戳)

list_any_value

array_any_value 的别名。

list_append

array_append 的别名。

list_cat

array_concat 的别名。

list_concat

array_concat 的别名。

list_contains

array_has 的别名。

list_dims

array_dims 的别名。

list_distance

array_distance 的别名。

list_distinct

array_distinct 的别名。

list_element

array_element 的别名。

list_empty

empty 的别名。

list_except

array_except 的别名。

list_extract

array_element 的别名。

list_has

array_has 的别名。

list_has_all

array_has_all 的别名。

list_has_any

array_has_any 的别名。

list_indexof

array_position 的别名。

list_intersect

array_intersect 的别名。

list_join

array_to_string 的别名。

list_length

array_length 的别名。

list_max

array_max 的别名。

list_ndims

array_ndims 的别名。

list_pop_back

array_pop_back 的别名。

list_pop_front

array_pop_front 的别名。

list_position

array_position 的别名。

list_positions

array_positions 的别名。

list_prepend

array_prepend 的别名。

list_push_back

array_append 的别名。

list_push_front

array_prepend 的别名。

list_remove

array_remove 的别名。

list_remove_all

array_remove_all 的别名。

list_remove_n

array_remove_n 的别名。

list_repeat

array_repeat 的别名。

list_replace

array_replace 的别名。

list_replace_all

array_replace_all 的别名。

list_replace_n

array_replace_n 的别名。

list_resize

array_resize 的别名。

list_reverse

array_reverse 的别名。

list_slice

array_slice 的别名。

list_sort

array_sort 的别名。

list_to_string

array_to_string 的别名。

list_union

array_union 的别名。

make_array

使用指定的输入表达式创建数组。

make_array(expression1[, ..., expression_n])

参数

  • expression_n:要包含在输出数组中的表达式。可以是常量、列或函数,以及任何算术或字符串运算符的组合。

别名

  • make_list

查看 make_array 示例

make_list

make_array 的别名。

range

返回一个在指定 startstop 值之间生成的,以指定 step 为间隔的数组。

范围 start..stop 包含所有大于或等于 start 且小于 stop 的值(start <= x < stop)。如果 start 大于或等于 stopstart >= stop),则函数返回一个空数组。

range 类似于 generate_series,但不包含上界(stop)在输出数组中。

range(start, stop, step)

参数

  • start:序列的开始。支持整数、时间戳、日期或可强制转换为 Date32 的字符串类型。
  • stop:序列的上限。支持整数、时间戳、日期或可强制转换为 Date32 的字符串类型。类型必须与 start 相同。
  • step:以 step 递增(不能为 0)。小于一天的步长仅支持 TIMESTAMP 类型的范围。

generate_series

查看 range 示例

查看 range 示例(日期)

查看 range 示例(时间戳)

string_to_array

根据分隔符将字符串拆分为子字符串数组。任何匹配可选 null_str 参数的子字符串都将被替换为 NULL

string_to_array(str, delimiter[, null_str])

参数

  • str:要拆分的字符串表达式。
  • delimiter:用于拆分的delimiter字符串。
  • null_str:_(可选)_ 要替换为 NULL 的子字符串值。

别名

  • string_to_list

查看 string_to_array 示例(逗号分隔列表)

查看 string_to_array 示例(非标准分隔符)

查看 string_to_array 示例(NULL 替换)

string_to_list

string_to_array 的别名。


此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2