Skip to main content

数组函数 (Array Functions)

本页面全面概述了 Databend 中的数组函数,按功能分类以便参考。

数组创建和操作

函数描述示例
ARRAY_APPEND在数组末尾添加元素ARRAY_APPEND([1, 2], 3)[1,2,3]
ARRAY_CONCAT连接两个数组ARRAY_CONCAT([1, 2], [3, 4])[1,2,3,4]
ARRAY_PREPEND在数组开头添加元素ARRAY_PREPEND(0, [1, 2])[0,1,2]
ARRAY_DISTINCT移除数组中的重复元素ARRAY_DISTINCT([1, 1, 2, 2])[1,2]
ARRAY_FLATTEN将嵌套数组扁平化为单层数组ARRAY_FLATTEN([[1, 2], [3, 4]])[1,2,3,4]
ARRAY_REMOVE_FIRST移除数组的首个元素ARRAY_REMOVE_FIRST([1, 2, 3])[2,3]
ARRAY_REMOVE_LAST移除数组的末尾元素ARRAY_REMOVE_LAST([1, 2, 3])[1,2]
ARRAY_SORT对数组元素进行排序ARRAY_SORT([3, 1, 2])[1,2,3]
ARRAY_UNIQUE移除数组中的重复元素ARRAY_UNIQUE([1, 1, 2, 2])[1,2]
ARRAYS_ZIP将多个数组合并为元组数组ARRAYS_ZIP([1, 2], ['a', 'b'])[(1,'a'),(2,'b')]
RANGE生成指定范围的整数数组RANGE(1, 5)[1,2,3,4]

数组访问和信息

函数描述示例
ARRAY_GET / GET获取指定位置的元素ARRAY_GET([1, 2, 3], 1)2
ARRAY_LENGTH / ARRAY_SIZE返回数组元素数量ARRAY_LENGTH([1, 2, 3])3
ARRAY_INDEXOF返回元素首次出现的位置ARRAY_INDEXOF([1, 2, 3], 2)1
ARRAY_CONTAINS / CONTAINS检查数组是否包含特定元素CONTAINS([1, 2, 3], 2)true
SLICE / ARRAY_SLICE提取子数组SLICE([1, 2, 3, 4], 1, 2)[2,3]

数组转换

函数描述示例
ARRAY_TRANSFORM对每个元素应用 lambda 函数ARRAY_TRANSFORM([1, 2, 3], x -> x * 2)[2,4,6]
ARRAY_FILTER根据 lambda 条件过滤元素ARRAY_FILTER([1, 2, 3], x -> x > 1)[2,3]
ARRAY_REDUCE使用 lambda 函数将数组归约为单个值ARRAY_REDUCE([1, 2, 3], 0, (s, x) -> s + x)6
ARRAY_APPLY对每个元素应用函数ARRAY_APPLY([1, 2, 3], x -> x * x)[1,4,9]
ARRAY_AGGREGATE对数组元素应用聚合函数ARRAY_AGGREGATE([1, 2, 3], 'sum')6
ARRAY_TO_STRING用分隔符将数组转换为字符串ARRAY_TO_STRING([1, 2, 3], ',')'1,2,3'
UNNEST将数组展开为行集合SELECT UNNEST([1, 2, 3])1, 2, 3 (作为行)
Explore Databend Cloud for FREE
Low-cost
Fast Analytics
Easy Data Ingestion
Elastic Scaling
Try it today