语句 含义 示例
下标运算符[] []用于获取数组中的某个元素。 -
连接运算符|| ||用于把两个数组连接成一个数组。 SELECT ARRAY [1] || ARRAY [2]; — [1, 2]

SELECT ARRAY [1] || 2; — [1, 2]

SELECT 2 || ARRAY [1]; — [2, 1]

array_distinct 数组去重,获取数组中的唯一元素。 -
array_intersect(x, y) 获取x,y两个数组的交集。 -
array_union(x, y) → array 获取x,y两个数组的并集。 -
array_except(x, y) → array 获取x,y两个数组的差集 -
array_join(x, delimiter, null_replacement) → varchar 把字符串数组用delimiter连接,拼接成字符串,null值用null_replacement替代。
说明 使用array_join函数时,返回结果最大为1 KB,超出1 KB的数据会被截断。
-
array_max(x) → x 获取x中的最大值。 -
array_min(x) → x 获取x中的最小值。 -
array_position(x, element) → bigint 获取element在x中的下标,下标从1开始。如果找不到,则返回0。 -
array_remove(x, element) → array 从数组中移除element。 -
array_sort(x) → array 给数组排序,null值放到最后。 -
cardinality(x) → bigint 获取数组的大小。 -
concat(array1, array2, …, arrayN) → array 连接数组。 -
contains(x, element) → boolean 如果x中包含element,则返回true。 -
filter(array, function) → array function 是一个Lambda函数,请参考lambda函数中的filter。 -
flatten(x) → array 把二维的array拼接成一维的array。 -
reduce(array, initialState, inputFunction, outputFunction) → x 请参考lambda函数reduce。 -
reverse(x) → array 把x反向排列。 -
sequence(start, stop) → array 生成从start到stop结束的一个序列,每一步加1。 -
sequence(start, stop, step) → array 生成从start到stop结束的一个序列,每一步加step。 -
sequence(start, stop, step) → array start和stop是timestamp类型,生成从start到stop结束的timestamp数组。step是INTERVAL类型,可以是DAY到SECOND,也可以是YEAR或MONTH。 -
shuffle(x) → array 重新随机分布array。 -
slice(x, start, length) → array 获取x数组从start开始,length个元素组成新的数组。 -
transform(array, function) → array 请参考lambda函数transform()。 -
zip(array1, array2[, …]) → array 合并多个数组。结果的第M个元素的第N个参数,是原始第N个数组的第M个元素,相当于把多个数组进行了转置。 SELECT zip(ARRAY[1, 2], ARRAY[‘1b’, null, ‘3b’]); — [ROW(1, ‘1b’), ROW(2, null), ROW(null, ‘3b’)]
zip_with(array1, array2, function) → array 请参考lambda函数zip_with。 -
array_agg (key) array_agg (key)是一个聚合函数,表示把key这一列的所有内容变成一个array返回。 * | select array_agg(key)