Skip to content

数组相关函数

以下所有的函数

表达式中参数说明:
expr :表达式
columnName :字段名

array_min

返回 array 中的最小值,如果 array 为非数组的基本类型,则返回自身

语法

sql
array_min(array: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回类型按传入参数类型判断

示例

查询:

sql
SELECT array_min(1)
SELECT array_min({1,2,3})

结果:

text
┌─array_min(1)────────────────────┐
│ 1                               │
└─────────────────────────────────┘
text
┌─array_min({1,2,3})──────────────┐
│ 1                               │
└─────────────────────────────────┘

array_max

返回 array 中的最大值,如果 array 为非数组的基本类型,则返回自身

语法

sql
array_max(array: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回类型按传入参数类型判断

示例

查询:

sql
SELECT array_max(1)
SELECT array_max({1,2,3})

结果:

text
┌─array_max(1)────────────────────┐
│ 1                               │
└─────────────────────────────────┘
text
┌─array_max({1,2,3})──────────────┐
│ 3                               │
└─────────────────────────────────┘

array_sum

返回 array 的和,如果 array 为非数组的基本类型,则返回自身

语法

sql
array_sum(array: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回类型按传入参数类型判断

示例

查询:

sql
SELECT array_sum(1)
SELECT array_sum({1,2,3})

结果:

text
┌─array_sum(1)────────────────────┐
│ 1                               │
└─────────────────────────────────┘
text
┌─array_sum({1,2,3})──────────────┐
│ 6                               │
└─────────────────────────────────┘

array_avg

返回 array 中的平均值,如果 array 为非数组的基本类型,则返回自身

语法

sql
array_avg(array: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回类型按传入参数类型判断

示例

查询:

sql
SELECT array_avg(1)
SELECT array_avg({1,2,3})

结果:

text
┌─array_avg(1)────────────────────┐
│ 1                               │
└─────────────────────────────────┘
text
┌─array_avg({1,2,3})──────────────┐
│ 2                               │
└─────────────────────────────────┘

array_count

返回 array 的长度,如果 array 为非数组的基本类型,则返回 1

语法

sql
array_count(array: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回类型按传入参数类型判断

示例

查询:

sql
SELECT array_count(1)
SELECT array_count({1,2,3})

结果:

text
┌─array_count(1)──────────────────┐
│ 1                               │
└─────────────────────────────────┘
text
┌─array_count({1,2,3})────────────┐
│ 3                               │
└─────────────────────────────────┘

magus_array

获取数组 e 中的值

如果 from = -1,则返回数组 e 中的最后一个下标的值

如果 to 不存在,则返回数组 e 在第 from 下标的值,返回值类型依据 e 的类型,如 eVtInt8Array,则返回值类型为 VtInt8

如果 to 小于 from,则会报错

如果 to - from > 1,则返回数组 e 中从 fromto 的值,此时该表达式不能用作比较

语法

sql
magus_array(e expr | columnName, from expr | columnName[, to expr | columnName])

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回类型按传入参数类型判断

示例

查询:

sql
SELECT magus_array({1,2,3}, 1, 2)
SELECT magus_array({1,2,3}, 0, 2)

结果:

text
┌─magus_array({1,2,3}, 1, 2)──────┐
│ 2                               │
└─────────────────────────────────┘
text
┌─magus_array({1,2,3}, 0, 2)───────────┐
│ {1, 2}                               │
└──────────────────────────────────────┘