)
使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被替换为
注意
使用array_join函数时,返回结果大小最大为1 KB,超出1 KB的数据会被截断。
字段样例
number:[49,50,45,47,50]
查询和分析语句
* | SELECT cast(json_parse(number) as array(bigint)) [1]
查询和分析结果
array_agg函数
array_agg函数会以数组形式返回
x
中的所有值。
语法
array_agg (x)
参数说明
字段样例
number:[49,50,45,47,50]
查询和分析语句
*| SELECT array_distinct(cast(json_parse(number) as array(bigint)))
查询和分析结果
array_except函数
array_except函数用于计算两个数组的差集。
语法
array_except(x, y)
参数说明
计算数组[1,2,3,4,5]和[1,3,5,7]的差集。
查询和分析语句
* | SELECT array_except(array[1,2,3,4,5],array[1,3,5,7])
查询和分析结果
array_intersect函数
array_intersect函数用于计算两个数组的交集。
语法
array_intersect(x, y)
参数说明
计算数组[1,2,3,4,5]和[1,3,5,7]的交集。
查询和分析语句
* | SELECT array_intersect(array[1,2,3,4,5],array[1,3,5,7])
查询和分析结果
array_join函数
array_join函数使用指定的连接符将数组中的元素拼接为一个字符串。
使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被忽略。
array_join(x, delimiter)
使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被替换为
null_replacement
。
array_join(x, delimiter,null_replacement)
使用空格将数组[null, 'Log','Service']中的元素拼接为一个字符串,其中null元素替换为Alicloud。
查询和分析语句
* | SELECT array_join(array[null,'Log','Service'],' ','Alicloud')
查询和分析结果
array_max函数
array_max函数用于获取数组中的最大值。
语法
array_max(x)
参数说明
字段样例
number:[49,50,45,47,50]
查询和分析语句
*| SELECT array_max(try_cast(json_parse(number) as array(bigint))) AS max_number
查询和分析结果
array_min函数
array_min函数用于获取数组中的最小值。
语法
array_min(x)
参数说明
字段样例
number:[49,50,45,47,50]
查询和分析语句
*| SELECT array_min(try_cast(json_parse(number) as array(bigint))) AS min_number
查询和分析结果
array_position函数
array_position函数用于获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。
语法
array_position(x, element)
参数说明
对数组['b', 'd', null, 'c', 'a']进行升序排序。
查询和分析语句
* | SELECT array_sort(array['b','d',null,'c','a'])
查询和分析结果
array_transpose函数
array_transpose函数用于对矩阵进行转置,即提取二维数组中索引相同的元素组成一个新的二维数组。
语法
array_transpose(x)
参数说明
array(double)类型。
提取二维数组中索引相同的元素组成一个新的二维数组,例如数组[0,1,2,3]、[10,19,18,17]、[0,9,8,7]中的0、10、9的索引都为1,则组成数组[0.0,10.0,9.0]。
查询和分析语句
* | SELECT array_transpose(array[array[0,1,2,3],array[10,19,18,17],array[9,8,7]])
查询和分析结果
array_union函数
array_union函数用于计算两个数组的并集。
语法
array_union(x, y)
参数说明
计算数组[1,2,3,4,5]和[1,3,5,7]的并集。
查询和分析语句
* | SELECT array_union(array[1,2,3,4,5],array[1,3,5,7])
查询和分析结果
cardinality函数
cardinality函数用于计算数组中元素的个数。
语法
cardinality(x)
参数说明
字段样例
number:[49,50,45,47,50]
查询和分析语句
*| SELECT cardinality(cast(json_parse(number) as array(bigint)))
查询和分析结果
concat函数
concat函数用于将多个数组拼接为一个数组。
语法
concat(x, y…)
参数说明
将数组['red','blue']和['yellow','green']拼接为一个数组。
查询和分析语句
* | SELECT concat(array['red','blue'],array['yellow','green'])
查询和分析结果
contains函数
contains函数用于判断数组中是否包含指定元素。如果包含,则返回true。
语法
contains(x, element)
参数说明
字段样例
region:["cn-hangzhou","cn-shanghai","cn-beijing"]
查询和分析语句
*| SELECT contains(cast(json_parse(region) as array(varchar)),'cn-beijing')
查询和分析结果
element_at函数
element_at函数用于返回数组中的第
y
个元素。
语法
element_at(x, y)
参数说明
将数组[array[1,2,3,4],array[5,2,2,4]转换为一维数组。
查询和分析语句
* | SELECT flatten(array[array[1,2,3,4],array[5,2,2,4]])
查询和分析结果
reduce函数
reduce函数将根据Lambda表达式中的定义,对数组中的各个元素进行相加计算,然后返回计算结果。
语法
reduce(x, lambda_expression)
参数说明
返回数组[5, 20, 50]中各个元素相加的结果。
查询和分析语句
* | SELECT reduce(array[5,20,50],0,(s, x) -> s + x, s -> s)
查询和分析结果
reverse函数
reverse函数用于对数组中的元素进行反向排列。
语法
reverse(x)
参数说明
示例2:返回2017-10-23到2021-08-12之间的日期,间隔为1年。
查询和分析语句
ww* | SELECT sequence(from_unixtime(1508737026),from_unixtime(1628734085),interval '1' year to month )
查询和分析结果
示例3:返回1628733298,1628734085之间的Unix时间戳,间隔为60秒。
查询和分析语句
* | SELECT sequence(1628733298,1628734085,60)
查询和分析结果
返回数组[1,2,4,5,6,7,7]的子集,从第三个元素开始返回,子集元素个数为2。
查询和分析语句
* | SELECT slice(array[1,2,4,5,6,7,7],3,2)
查询和分析结果
transform函数
transform函数用于将Lambda表达式应用到数组的每个元素中。
语法
transform(x, lambda_expression)
参数说明
将数组[1,2,3]、['1b',null,'3b']和[1,2,3]合并为一个二维数组。
查询和分析语句
* | SELECT zip(array[1,2,3], array['1b',null,'3b'],array[1,2,3])
查询和分析结果
zip_with函数
zip_with函数将根据Lambda表达式中的定义将两个数组合并为一个数组。
语法
zip_with(x, y, lambda_expression)
参数说明