array_join( x , delimiter , null_replacement ) 使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被替换为 null_replacement
注意 使用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_distinct
  • 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_except
  • 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_intersect
  • 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_join
  • 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_max
  • 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_min
  • 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_sort
  • 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_transpose
  • 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])
  • 查询和分析结果 array_union
  • cardinality函数

    cardinality函数用于计算数组中元素的个数。

    语法

    cardinality(x)

    参数说明

  • 字段样例
    number:[49,50,45,47,50]
  • 查询和分析语句
    *| SELECT cardinality(cast(json_parse(number) as array(bigint)))
  • 查询和分析结果 cardinality
  • concat函数

    concat函数用于将多个数组拼接为一个数组。

    语法

    concat(x, y…)

    参数说明

    将数组['red','blue']和['yellow','green']拼接为一个数组。

  • 查询和分析语句
    * | SELECT concat(array['red','blue'],array['yellow','green'])
  • 查询和分析结果 concat-array
  • contains函数

    contains函数用于判断数组中是否包含指定元素。如果包含,则返回true。

    语法

    contains(x, element)

    参数说明

  • 字段样例
    region:["cn-hangzhou","cn-shanghai","cn-beijing"]
  • 查询和分析语句
    *| SELECT contains(cast(json_parse(region) as array(varchar)),'cn-beijing')
  • 查询和分析结果 contains
  • 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]])
  • 查询和分析结果 flatten
  • reduce函数

    reduce函数将根据Lambda表达式中的定义,对数组中的各个元素进行相加计算,然后返回计算结果。

    语法

    reduce(x, lambda_expression)

    参数说明

    返回数组[5, 20, 50]中各个元素相加的结果。

  • 查询和分析语句
    * | SELECT reduce(array[5,20,50],0,(s, x) -> s + x, s -> s)
  • 查询和分析结果 reduce
  • 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 )
  • 查询和分析结果 sequence
  • 示例3:返回1628733298,1628734085之间的Unix时间戳,间隔为60秒。
  • 查询和分析语句
    * | SELECT  sequence(1628733298,1628734085,60)
  • 查询和分析结果 sequence
  • 返回数组[1,2,4,5,6,7,7]的子集,从第三个元素开始返回,子集元素个数为2。

  • 查询和分析语句
    * | SELECT slice(array[1,2,4,5,6,7,7],3,2)
  • 查询和分析结果 slice
  • 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
  • zip_with函数

    zip_with函数将根据Lambda表达式中的定义将两个数组合并为一个数组。

    语法

    zip_with(x, y, lambda_expression)

    参数说明