跳到主要内容
跳到主要内容

数组函数

array

引入于:v1.1

语法

参数

  • x1 — 任意类型 T 的常量值。如果仅提供此参数,数组的类型将为 T。
  • [, x2, ..., xN] — 与 x1 共享共同超类型的额外 N 个常量值。

返回值

返回 'Array(T)' 类型结果,其中 'T' 是传入参数中最小的共同类型。

示例

有效用法

无效用法

arrayAUCPR

引入于:v20.4

语法

参数

  • cores — 模型提供的评分预测。 Array整数浮点数
  • labels — 样本的标签,通常为正样本的 1 和负样本的 0。 Array整数枚举
  • partial_offsets
  • 可选。用于计算 PR 曲线下部分区域的 Array(T) ,包含三个非负整数,而不是整个 AUC。此选项对 PR AUC 的分布式计算很有用。数组必须包含以下元素 [higher_partitions_tp, higher_partitions_fp, total_positives]。 Array 的非负 整数。可选。
    • higher_partitions_tp: 在高分分区中正标签的数量。
    • higher_partitions_fp: 在高分分区中负标签的数量。
    • total_positives: 整个数据集中正样本的总数。
备注

当使用 arr_partial_offsets 时,arr_scoresarr_labels 应仅为整个数据集的一个分区,包含一个分数区间。 数据集应被划分为连续的分区,每个分区包含分数落在特定范围内的数据子集。 例如:

  • 一个分区可以包含所有在范围 [0, 0.5) 的分数。
  • 另一个分区可以包含范围 [0.5, 1.0] 的分数。

返回值

返回精确-召回 (PR) 曲线下的区域。 Float64

示例

用法示例

arrayAll

引入于:v1.1

语法

参数

  • func(x[, y1, ..., yN]) — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组。 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

如果 lambda 函数对所有元素返回 true,则返回 1,否则返回 0UInt8

示例

所有元素匹配

不是所有元素匹配

arrayAvg

引入于:v21.1

语法

参数

  • func(x[, y1, ..., yN]) — 可选。操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组。 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中元素的平均值,或者如果提供,则返回 lambda 结果的平均值。 Float64

示例

基本示例

使用 lambda 函数

arrayCompact

引入于:v20.1

语法

参数

  • arr — 要去重的数组。 Array(T)

返回值

返回不包含重复值的数组。 Array(T)

示例

用法示例

arrayDistinct

引入于:v1.1

语法

参数

  • arr — 需要提取不同元素的数组。 Array(T)

返回值

返回包含不同元素的数组。 Array(T)

示例

用法示例

arrayElement

引入于:v1.1

语法

参数

  • arr — 要搜索的数组。 Array(T)
  • n — 要获取的元素位置。 (U)Int*

返回值

返回由提供的数组参数组成的单个组合数组。 Array(T)

示例

用法示例

负索引

使用 [n] 的表示法

索引超出数组边界

arrayElementOrNull

引入于:v1.1

语法

参数

  • arrays — 任意数量的 Array 类型参数。

返回值

返回由提供的数组参数组成的单个组合数组。

示例

用法示例

负索引

索引超出数组边界

arrayEnumerate

引入于:v1.1

语法

参数

  • arr — 要枚举的数组。 Array

返回值

返回数组 [1, 2, 3, ..., length(arr)]。 Array(UInt32)

示例

与 ARRAY JOIN 的基本示例

arrayEnumerateUniqRanked

引入于:v20.1

语法

参数

  • clear_depth — 分别对指定级别的元素进行枚举。正整数 (Integer),小于或等于 max_arr_depth
  • arr — 要枚举的 N 维数组。 Array
  • max_array_depth — 最大有效深度。正整数 (Integer),小于或等于 arr 的深度。

返回值

返回与 arr 大小相同的 N 维数组,每个元素显示该元素相对于同一值的其他元素的位置。

示例

示例 1

示例 2

示例 3

示例 4

arrayExists

引入于:v1.1

语法

参数

  • func(x[, y1, ..., yN]) — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组。 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

如果 lambda 函数对至少一个元素返回 true,则返回 1,否则返回 0UInt8

示例

用法示例

arrayFill

引入于:v20.1

语法

参数

  • func(x [, y1, ..., yN]) — lambda 函数 func(x [, y1, y2, ... yN]) → F(x [, y1, y2, ... yN]),操作源数组 (x) 和条件数组 (y) 元素。 Lambda 函数
  • source_arr — 要处理的源数组 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回一个数组。 Array(T)

示例

单个数组的示例

两个数组的示例

arrayFilter

引入于:v1.1

语法

参数

  • func(x[, y1, ..., yN]) — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组的子集。 Array(T)

示例

示例 1

示例 2

arrayFirst

引入于:v1.1

语法

参数

  • func(x[, y1, ..., yN]) — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组。 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中第一个使 λ 为 true 的元素,否则返回 T 的默认值。

示例

用法示例

没有匹配

arrayFirstIndex

引入于:v1.1

语法

参数

  • func(x[, y1, ..., yN]) — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组。 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中第一个使 func 为 true 的元素的索引,否则返回 0UInt32

示例

用法示例

没有匹配

arrayFirstOrNull

引入于:v1.1

语法

参数

  • func(x[, y1, ..., yN]) — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组。 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中第一个使 func 为 true 的元素,否则返回 NULL

示例

用法示例

没有匹配

arrayFlatten

引入于:v20.1

语法

参数

  • arr — 多维数组。 Array(T)(Array)

返回值

返回从多维数组平铺出的数组。 Array(T)

示例

用法示例

arrayFold

引入于:v23.10

语法

参数

  • λ(x, x1 [, x2, x3, ... xN]) — lambda 函数 λ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN]),其中 F 是应用于 acc 和来自 x 的数组值的操作,acc 的结果可以被重用。 Lambda 函数
  • arr1 [, arr2, arr3, ... arrN] — N 个要操作的数组。 Array(T)
  • acc — 与 Lambda 函数返回类型相同的累加器值。

返回值

返回最终的 acc 值。

示例

用法示例

斐波那契数列

使用多个数组的示例

arrayIntersect

引入于:v1.1

语法

参数

  • arrN — 用于创建新数组的 N 个数组。 Array(T)

返回值

返回一个包含所有 N 个数组中存在的不重复元素的数组。 Array(T)

示例

用法示例

arrayJaccardIndex

引入于:v23.7

语法

参数

  • arr_x — 第一个数组。 Array(T)
  • arr_y — 第二个数组。 Array(T)

返回值

返回 arr_xarr_y 的 Jaccard 指数。Float64

示例

用法示例

arrayJoin

引入于:v1.1

语法

参数

  • arr — 要展开的数组。 Array(T)

返回值

返回从 arr 展开的行集合。

示例

基本用法

arrayJoin 影响查询的所有部分

使用多个 arrayJoin 函数

由于优化导致的意外结果

使用 ARRAY JOIN 语法

使用元组

arrayLast

引入于:v1.1

语法

参数

  • func(x[, y1, ..., yN]) — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source — 要处理的源数组。 Array(T)
  • [, cond1, ... , condN] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中最后一个使 func 为 true 的元素,否则返回 T 的默认值。

示例

用法示例

没有匹配

arrayLastOrNull

引入于:v1.1

语法

参数

  • func(x [, y1, ..., yN]) — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组。 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中最后一个使 λ 不为 true 的元素,否则返回 NULL

示例

用法示例

没有匹配

arrayLevenshteinDistance

引入于:v25.4

语法

参数

返回值

第一个数组与第二个数组之间的 Levenshtein 距离。 Float64

示例

用法示例

arrayLevenshteinDistanceWeighted

引入于:v25.4

语法

参数

返回值

具有自定义权重的 Levenshtein 距离,第一个数组和第二个数组的每个元素。 Float64

示例

用法示例

arrayMap

引入于:v1.1

语法

参数

  • func — 操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • arr — 要处理的 N 个数组。 Array(T)

返回值

返回 lambda 结果组成的数组。 Array(T)

示例

用法示例

从不同数组创建元素的元组

arrayMax

引入于:v21.1

语法

参数

  • func(x[, y1, ..., yN]) — 可选。操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组。 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中的最大元素,或者如果提供则返回 lambda 结果的最小元素。

示例

基本示例

与 lambda 函数的用法

arrayMin

引入于:v21.1

语法

参数

  • func(x[, y1, ..., yN]) — 可选。操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中的最小元素,或者如果提供则返回 lambda 结果的最小元素。

示例

基本示例

与 lambda 函数的用法

arrayNormalizedGini

引入于:v25.1

语法

参数

返回值

返回一个元组,包含预测值的 Gini 系数,归一化值的 Gini 系数,和归一化 Gini 系数(= 前两个 Gini 系数的比率)。 Tuple(Float64, Float64, Float64)

示例

用法示例

arrayPartialReverseSort

引入于:v23.2

语法

参数

  • f(arr[, arr1, ... ,arrN]) — 应用于数组 x 元素的 lambda 函数。
  • arr — 要排序的数组。 Array(T)
  • arr1, ... ,arrN — 当 f 接受多个参数时的 N 个额外数组。 Array(T)
  • limit — 排序将进行的索引值。 (U)Int*`]

返回值

返回与原始数组大小相同的数组,其中 [1..limit] 范围内的元素按降序排序。剩余元素 (limit..N] 的顺序不确定。

示例

simple_int

simple_string

retain_sorted

lambda_simple

lambda_complex

arrayPartialShuffle

引入于:v23.2

语法

参数

  • arr — 要打乱的数组。 Array(T)
  • seed — 可选。用于随机数生成的种子。如果未提供,则使用随机值。 (U)Int*
  • limit — 可选。在范围 [1..N] 内限制元素交换的数量。 (U)Int*

返回值

部分打乱后的数组。 Array(T)

示例

no_limit1

no_limit2

random_seed

explicit_seed

materialize

arrayPartialSort

引入于:v23.2

语法

参数

  • f(arr[, arr1, ... ,arrN]) — 应用于数组 x 元素的 lambda 函数。
  • arr — 要排序的数组。 Array(T)
  • arr1, ... ,arrN — 当 f 接受多个参数时的 N 个额外数组。 Array(T)
  • limit — 排序将进行的索引值。 (U)Int*`]

返回值

返回与原始数组大小相同的数组,其中 [1..limit] 范围内的元素按升序排序。剩余元素 (limit..N] 的顺序不确定。

示例

simple_int

simple_string

retain_sorted

lambda_simple

lambda_complex

arrayPopBack

引入于:v1.1

语法

参数

  • arr — 要移除最后一个元素的数组。 Array(T)

返回值

返回与 arr 相同但最后一个元素被移除的数组。 Array(T)

示例

用法示例

arrayPopFront

引入于:v1.1

语法

参数

  • arr — 要移除第一个元素的数组。 Array(T)

返回值

返回与 arr 相同但第一个元素被移除的数组。 Array(T)

示例

用法示例

arrayProduct

引入于:v21.1

语法

参数

  • func(x[, y1, ..., yN]) — 可选。操作源数组 (x) 和条件数组 (y) 元素的 lambda 函数。 Lambda 函数
  • source_arr — 要处理的源数组 Array(T)
  • [, cond1_arr, ... , condN_arr] — 可选。提供额外参数给 lambda 函数的 N 个条件数组。 Array(T)

返回值

返回源数组中元素的乘积,或者如果提供则返回 lambda 结果的乘积。 Float64

示例

基本示例

与 lambda 函数的用法

arrayPushBack

引入于:v1.1

语法

参数

  • arr — 要在其末尾添加值 x 的数组。 Array(T)
  • x
  • 要添加到数组末尾的单个值。 Array(T)
备注
  • 仅数字可以添加到数字数组中,且仅字符串可以添加到字符串数组中。
  • 在添加数字时,ClickHouse 会自动将 x 的类型设置为数组的数据类型。
  • 可以为 NULL。该函数将 NULL 元素添加到数组,并且数组元素的类型将转换为 Nullable

有关 ClickHouse 中数据类型的更多信息,请参见 数据类型

返回值

返回与 arr 相同的数组,但在数组末尾附加了一个值 xArray(T)

示例

用法示例

arrayPushFront

引入于:v1.1

语法

参数

  • arr — 要在其前面添加值 x 的数组。 Array(T)
  • x
  • 要添加到数组开头的单个值。 Array(T)
备注
  • 仅数字可以添加到数字数组中,且仅字符串可以添加到字符串数组中。
  • 在添加数字时,ClickHouse 会自动将 x 的类型设置为数组的数据类型。
  • 可以为 NULL。该函数将 NULL 元素添加到数组,并且数组元素的类型将转换为 Nullable

有关 ClickHouse 中数据类型的更多信息,请参见 数据类型

返回值

返回与 arr 相同的数组,但在数组开头附加了一个值 xArray(T)

示例

用法示例

arrayROCAUC

引入于:v20.4

语法

参数

  • scores — 模型提供的评分预测。 Array(T)整数浮点数
  • labels — 样本的标签,通常为正样本的 1 和负样本的 0。 Array整数枚举
  • scale — 决定是否返回归一化区域。如果为 false,则返回 TP(真阳性) x FP(假阳性)曲线下的区域。默认值: true。 Bool。可选。
  • partial_offsets
  • 用于计算 ROC 曲线下部分区域的四个非负整数数组(相当于 ROC 空间的垂直带),而不是整个 AUC。此选项对 ROC AUC 的分布式计算很有用。数组必须包含以下元素 [higher_partitions_tp, higher_partitions_fp, total_positives, total_negatives]。 Array 的非负 整数。可选。
    • higher_partitions_tp: 在高分分区中正标签的数量。
    • higher_partitions_fp: 在高分分区中负标签的数量。
    • total_positives: 整个数据集中正样本的总数。
    • total_negatives: 整个数据集中负样本的总数。
备注

当使用 arr_partial_offsets 时,arr_scoresarr_labels 应仅为整个数据集的一个分区,包含一个分数区间。 数据集应被划分为连续的分区,每个分区包含分数落在特定范围内的数据子集。 例如:

  • 一个分区可以包含所有在范围 [0, 0.5) 的分数。
  • 另一个分区可以包含范围 [0.5, 1.0] 的分数。

返回值

返回受试者工作特征 (ROC) 曲线下的区域。 Float64

示例

用法示例

arrayRandomSample

引入时间:v23.10

语法

参数

  • arr — 输入数组或多维数组,以从中抽样元素。 (Array(T)).
  • samples — 随机样本中包含的元素数量 ((U)Int*).

返回值

返回一个包含输入数组中元素的随机样本的数组。 Array(T).

示例

用法示例

使用多维数组

arrayReduce

引入时间:v1.1

语法

参数

  • agg_f — 需要为一个常量的聚合函数的名称 String.
  • arr1 [, arr2, ... , arrN)] — N 个数组,对应于 agg_f 的参数。 Array(T).

返回值

返回聚合函数的结果。

示例

用法示例

使用多个参数的聚合函数示例

使用参数化聚合函数的示例

arrayReduceInRanges

引入时间:v20.4

语法

参数

  • agg_f — 要使用的聚合函数的名称。 String
  • ranges — 聚合的范围。一个包含元组的数组 (i, r),包含从 i 开始的索引和聚合的范围 rArray(T)(Tuple(T1, T2, ...))
  • arr1 [, arr2, ... ,arrN)] — 作为聚合函数参数的 N 个数组。 Array(T).

返回值

返回一个包含在指定范围内的聚合函数结果的数组。 Array(T).

示例

用法示例

arrayResize

引入时间:v1.1

语法

参数

  • arr — 要调整大小的数组。 Array(T)

  • size

  • 新数组的长度。 如果 size 小于原始数组的大小,则数组将从右侧截断。 如果 size 大于数组的初始大小,则数组将向右扩展,并使用 extender 值或数组项的数据类型的默认值。

  • extender — 用于扩展数组的值。可以是 NULL

返回值

长度为 size 的数组。 Array(T).

示例

示例 1

示例 2

arrayReverse

引入时间:v1.1

语法

参数

  • arr — 要反转的数组。 Array(T).

返回值

返回与原数组大小相同的数组,元素顺序已反转。 Array(T).

示例

用法示例

arrayReverseFill

引入时间:v20.1

语法

参数

  • func(x[, y1, ..., yN]) — 一个在源数组的元素 (x) 和条件数组 (y) 上进行操作的 lambda 函数。 Lambda function.
  • source_arr — 要处理的源数组 Array(T).
  • [, cond1_arr, ... , condN_arr] — 可选。 N 个条件数组,为 lambda 函数提供额外的参数。 Array(T).

返回值

返回一个数组,其元素由 lambda 的结果替换了源数组的元素。 Array(T).

示例

使用单个数组的示例

使用两个数组的示例

arrayReverseSort

引入时间:v1.1

语法

参数

  • f(y1[, y2 ... yN]) — 要应用于数组 x 元素的 lambda 函数。
  • arr — 要排序的数组。 Array(T)
  • arr1, ..., yN — 可选。当 f 接受多个参数时,N 个额外数组。

返回值

如果未提供 lambda 函数,则返回按降序排列的数组 x,否则返回根据提供的 lambda 函数逻辑排序后再反转的数组。 Array(T).

示例

示例 1

示例 2

arrayReverseSplit

引入时间:v20.1

语法

参数

  • func(x[, y1, ..., yN]) — 一个在源数组的元素 (x) 和条件数组 (y) 上进行操作的 lambda 函数。 Lambda function.
  • source_arr — 要处理的源数组。 Array(T).
  • [, cond1_arr, ... , condN_arr] — 可选。 N 个条件数组,为 lambda 函数提供额外的参数。 Array(T).

返回值

返回一个数组的数组。 Array(Array(T)).

示例

用法示例

arrayRotateLeft

引入时间:v23.8

语法

参数

返回值

一个向左旋转指定数量元素的数组。 Array(T).

示例

用法示例

n 的负值

arrayRotateRight

引入时间:v23.8

语法

参数

返回值

一个向右旋转指定数量元素的数组。 Array(T).

示例

用法示例

n 的负值

arrayShiftLeft

引入时间:v23.8

语法

参数

  • arr — 要移动元素的数组。Array(T).
  • n — 要移动的元素数量。(U)Int8/16/32/64.
  • default — 可选。新元素的默认值。

返回值

一个向左移动指定数量元素的数组。 Array(T).

示例

用法示例

n 的负值

使用默认值

arrayShiftRight

引入时间:v23.8

语法

参数

  • arr — 要移动元素的数组。 Array(T).
  • n — 要移动的元素数量。 (U)Int8/16/32/64.
  • default — 可选。新元素的默认值。

返回值

一个向右移动指定数量元素的数组。 Array(T).

示例

用法示例

n 的负值

使用默认值

arrayShingles

引入时间:v24.1

语法

参数

  • arr — 要生成 shingles 的数组。 Array(T).
  • l — 每个 shingle 的长度。 (U)Int*

返回值

生成的 shingles 数组。 Array(T)

示例

用法示例

arrayShuffle

引入时间:v23.2

语法

参数

  • arr — 要打乱的数组。 Array(T).
  • seed (可选) — 可选。与随机数生成一起使用的种子。如果未提供,则使用随机种子。 (U)Int*.

返回值

打乱元素的数组。 Array(T).

示例

没有种子的示例(不稳定的结果)

没有种子的示例(稳定的结果)

arraySimilarity

引入时间:v25.4

语法

参数

  • from — 第一个数组
  • to — 第二个数组
  • from_weights — 第一个数组的权重
  • to_weights — 第二个数组的权重

返回值

返回两个数组之间的相似度,值在 01 之间,基于加权的 Levenshtein 距离。 Float64.

示例

用法示例

arraySlice

引入时间:v1.1

语法

参数

  • arr — 要切片的数组。 Array(T).
  • offset — 从数组边缘的缩进。正值表示左侧的偏移,而负值表示右侧的偏移。数组项的编号从 1 开始。 (U)Int*.
  • length — 所需切片的长度。如果指定负值,函数返回开放切片 [offset, array_length - length]。如果省略值,函数返回切片 [offset, the_end_of_array](U)Int*.

返回值

返回指定 offsetlength 元素的数组切片。 Array(T).

示例

用法示例

arraySort

引入时间:v1.1

语法

参数

  • f(y1[, y2 ... yN]) — 要应用于数组 x 元素的 lambda 函数。
  • arr — 要排序的数组。 Array(T)
  • arr1, ..., yN — 可选。当 f 接受多个参数时,N 个额外数组。

返回值

如果未提供 lambda 函数,则返回按升序排列的数组 arr,否则返回根据提供的 lambda 函数逻辑排序的数组。 Array(T).

示例

示例 1

示例 2

示例 3

arraySplit

引入时间:v20.1

语法

参数

  • func(x[, y1, ..., yN]) — 一个在源数组的元素 (x) 和条件数组 (y) 上进行操作的 lambda 函数。Lambda function.
  • source_arr — 要拆分的源数组 Array(T).
  • [, cond1_arr, ... , condN_arr] — 可选。N 个条件数组,为 lambda 函数提供额外的参数。 Array(T).

返回值

返回一个数组的数组。 Array(Array(T)).

示例

用法示例

arraySum

引入时间:v21.1

语法

参数

  • func(x[, y1, ..., yN]) — 可选。一个在源数组的元素 (x) 和条件数组 (y) 上进行操作的 lambda 函数。 Lambda function.
  • source_arr — 要处理的源数组。 Array(T).
  • [, cond1_arr, ... , condN_arr] — 可选。 N 个条件数组,为 lambda 函数提供额外的参数。 Array(T).

返回值

返回源数组中元素的总和,或返回提供的 lambda 结果的元素总和。

示例

基本示例

与 lambda 函数配合使用的示例

arraySymmetricDifference

引入时间:v25.4

语法

参数

  • arrN — 从 N 个数组中生成的新数组。 Array(T).

返回值

返回一个不在所有源数组中的不同元素的数组。 Array(T).

示例

用法示例

arrayUnion

引入时间:v24.10

语法

参数

  • arrN — 从 N 个数组生成的新数组。 Array(T).

返回值

返回一个包含源数组中不同元素的数组。 Array(T).

示例

用法示例

arrayUniq

引入时间:v1.1

语法

参数

  • arr1 — 用于计算独特元素数量的数组。 Array(T).
  • [, arr2, ..., arrN] (可选) — 可选。附加数组,用于计算多个数组中对应位置元素的独特元组数量。 Array(T).

返回值

对于单个参数,返回独特元素数量。对于多个参数,返回由多个数组中对应位置的元素构成的独特元组数量。 UInt32.

示例

单个参数

多个参数

arrayWithConstant

引入时间:v20.1

语法

参数

  • length — 数组中的元素数量。 (U)Int*.
  • x — 数组中 N 个元素的值,可以是任何类型。

返回值

返回具有 N 个值为 x 的数组。

示例

用法示例

arrayZip

引入时间:v20.1

语法

参数

  • arr1, arr2, ... , arrN — N 个要组合成一个数组的数组。 Array(T)

返回值

返回一个元素来自源数组的元组组合的数组。元组中的数据类型与输入数组的类型相同,并按照数组传递的顺序排列。 Array(T)(Tuple).

示例

用法示例

arrayZipUnaligned

引入时间:v20.1

语法

参数

  • arr1, arr2, ..., arrN — N 个要组合成一个数组的数组。 Array(T).

返回值

返回一个元素来自源数组的元组组合的数组。元组中的数据类型与输入数组的类型相同,并按数组传递的顺序排列。 Array(T)(Tuple(T1, T2, ...)).

示例

用法示例

countEqual

引入时间:v1.1

语法

参数

  • arr — 要搜索的数组。 Array(T).
  • x — 要计数的数组中的值。可以是任何类型。

返回值

返回数组中等于 x 的元素数量。 UInt64.

示例

用法示例

empty

引入时间:v1.1

语法

参数

返回值

对于空数组返回 1,对于非空数组返回 0UInt8.

示例

用法示例

emptyArrayDate

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的日期数组。 Array(T).

示例

用法示例

emptyArrayDateTime

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的日期时间数组。 Array(T).

示例

用法示例

emptyArrayFloat32

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 Float32 数组。 Array(T).

示例

用法示例

emptyArrayFloat64

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 Float64 数组。 Array(T).

示例

用法示例

emptyArrayInt16

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 Int16 数组。 Array(T).

示例

用法示例

emptyArrayInt32

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 Int32 数组。 Array(T).

示例

用法示例

emptyArrayInt64

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 Int64 数组。 Array(T).

示例

用法示例

emptyArrayInt8

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 Int8 数组。 Array(T).

示例

用法示例

emptyArrayString

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的字符串数组。 Array(T).

示例

用法示例

emptyArrayToSingle

引入时间:v1.1

语法

参数

返回值

一个具有数组默认类型单一值的数组。

示例

基本示例

emptyArrayUInt16

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 UInt16 数组。 Array(T).

示例

用法示例

emptyArrayUInt32

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 UInt32 数组。 Array(T).

示例

用法示例

emptyArrayUInt64

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 UInt64 数组。 Array(T).

示例

用法示例

emptyArrayUInt8

引入时间:v1.1

语法

参数

  • `` —

返回值

一个空的 UInt8 数组。 Array(T).

示例

用法示例

hasAll

引入时间:v1.1

语法

参数

  • set — 具有元素集的任何类型数组。 Array.
  • subset — 具有与 set 共享公共父类型的元素的任何类型数组,包含应测试为 set 的子集的元素。 Array.

返回值

  • 1,如果 set 包含来自 subset 的所有元素。
  • 0,否则。

如果 set 和 subset 元素没有共享共同的父类型,则引发 NO_COMMON_TYPE 异常。

示例

空数组

包含 NULL 值的数组

包含不同类型值的数组

包含字符串值的数组

没有公共类型的数组

数组的数组

hasAny

引入时间:v1.1

语法

参数

  • arr_x — 具有元素集的任何类型数组。 Array(T).
  • arr_y — 与数组 arr_x 共享公共父类型的任何类型数组。 Array(T).

返回值

  • 1,如果 arr_xarr_y 至少有一个相似的元素。
  • 0,否则。

如果两个数组的任何元素没有共享共同的父类型,则引发 NO_COMMON_TYPE 异常。

示例

一个数组为空

包含 NULL 值的数组

包含不同类型值的数组

没有公共类型的数组

数组的数组

hasSubstr

引入时间:v20.6

语法

参数

  • arr1 — 具有元素集的任何类型数组。 Array(T).
  • arr2 — 具有元素集的任何类型数组。 Array(T).

返回值

如果数组 arr1 包含数组 arr2,则返回 1。否则,返回 0

示例

两个数组都是空的

包含 NULL 值的数组

包含不同类型值的数组

包含字符串的数组

有效顺序的数组

无效顺序的数组

数组的数组

没有公共类型的数组

indexOf

引入时间:v1.1

语法

参数

  • arr — 要搜索 x 的数组。 Array.
  • x — 在 arr 中寻找的第一个匹配元素的值。 UInt64.

返回值

如果存在,则返回 arr 中首个 x 的索引(从一开始编号)。否则,返回 0

示例

基本示例

带有空值的数组

indexOfAssumeSorted

引入时间:v24.12

语法

参数

  • arr — 要搜索的排序数组。 Array(T).
  • x — 在排序 arr 中寻找的第一个匹配元素的值。UInt64

返回值

如果存在,则返回 arr 中首个 x 的索引(从一开始编号)。否则,返回 0

示例

基本示例

length

引入时间:v1.1

语法

参数

  • x — 用于计算字节数量(对于字符串/固定字符串)或元素数量(对于数组)的字符串、固定字符串或数组。

返回值

返回字符串/固定字符串 x 中的字节数/数组 x 中的元素数量。

示例

string1

arr1

constexpr

unicode

ascii_vs_utf8

notEmpty

引入时间:v1.1

语法

参数

返回值

对于非空数组返回 1,对于空数组返回 0UInt8.

示例

用法示例

range

引入时间:v1.1

语法

参数

  • start — 可选。数组的第一个元素。如果使用了 step,这是必需的。默认值: 0
  • end — 必需。在此之前构造数组的数字。
  • step — 可选。决定数组中每个元素之间的增量步长。默认值: 1

返回值

数组中的数字从 startend - 1,步长为 step

示例

用法示例