数组函数
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_scores
与 arr_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
,否则返回 0
。 UInt8
。
示例
所有元素匹配
不是所有元素匹配
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
语法
参数
返回值
返回由提供的数组参数组成的单个组合数组。 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
,否则返回 0
。 UInt8
。
示例
用法示例
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 的元素的索引,否则返回 0
。 UInt32
。
示例
用法示例
没有匹配
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
和 arr_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
语法
参数
from
— 第一个数组。Array(T)
。to
— 第二个数组。Array(T)
。from_weights
— 第一个数组的权重。Array(Float32)
。to_weights
— 第二个数组的权重。Array(Float32)
。
返回值
具有自定义权重的 Levenshtein 距离,第一个数组和第二个数组的每个元素。 Float64
。
示例
用法示例
arrayMap
引入于:v1.1
语法
参数
返回值
返回 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
语法
参数
- 仅数字可以添加到数字数组中,且仅字符串可以添加到字符串数组中。
- 在添加数字时,ClickHouse 会自动将
x
的类型设置为数组的数据类型。 - 可以为
NULL
。该函数将NULL
元素添加到数组,并且数组元素的类型将转换为Nullable
。
有关 ClickHouse 中数据类型的更多信息,请参见 数据类型。
返回值
返回与 arr
相同的数组,但在数组末尾附加了一个值 x
。 Array(T)
。
示例
用法示例
arrayPushFront
引入于:v1.1
语法
参数
- 仅数字可以添加到数字数组中,且仅字符串可以添加到字符串数组中。
- 在添加数字时,ClickHouse 会自动将
x
的类型设置为数组的数据类型。 - 可以为
NULL
。该函数将NULL
元素添加到数组,并且数组元素的类型将转换为Nullable
。
有关 ClickHouse 中数据类型的更多信息,请参见 数据类型。
返回值
返回与 arr
相同的数组,但在数组开头附加了一个值 x
。 Array(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_scores
与 arr_labels
应仅为整个数据集的一个分区,包含一个分数区间。
数据集应被划分为连续的分区,每个分区包含分数落在特定范围内的数据子集。
例如:
- 一个分区可以包含所有在范围 [0, 0.5) 的分数。
- 另一个分区可以包含范围 [0.5, 1.0] 的分数。
返回值
返回受试者工作特征 (ROC) 曲线下的区域。 Float64。
示例
用法示例
arrayRandomSample
引入时间:v23.10
语法
参数
返回值
返回一个包含输入数组中元素的随机样本的数组。 Array(T)
.
示例
用法示例
使用多维数组
arrayReduce
引入时间:v1.1
语法
参数
返回值
返回聚合函数的结果。
示例
用法示例
使用多个参数的聚合函数示例
使用参数化聚合函数的示例
arrayReduceInRanges
引入时间:v20.4
语法
参数
agg_f
— 要使用的聚合函数的名称。 Stringranges
— 聚合的范围。一个包含元组的数组(i, r)
,包含从i
开始的索引和聚合的范围r
,Array(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
语法
参数
arr
— 要旋转元素的数组。Array(T)
.n
— 旋转的元素数量。(U)Int8/16/32/64
.
返回值
一个向左旋转指定数量元素的数组。 Array(T)
.
示例
用法示例
n 的负值
arrayRotateRight
引入时间:v23.8
语法
参数
arr
— 要旋转元素的数组。Array(T)
.n
— 旋转的元素数量。(U)Int8/16/32/64
.
返回值
一个向右旋转指定数量元素的数组。 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
语法
参数
返回值
生成的 shingles 数组。 Array(T)
示例
用法示例
arrayShuffle
引入时间:v23.2
语法
参数
返回值
打乱元素的数组。 Array(T)
.
示例
没有种子的示例(不稳定的结果)
没有种子的示例(稳定的结果)
arraySimilarity
引入时间:v25.4
语法
参数
from
— 第一个数组to
— 第二个数组from_weights
— 第一个数组的权重to_weights
— 第二个数组的权重
返回值
返回两个数组之间的相似度,值在 0
和 1
之间,基于加权的 Levenshtein 距离。 Float64
.
示例
用法示例
arraySlice
引入时间:v1.1
语法
参数
arr
— 要切片的数组。Array(T)
.offset
— 从数组边缘的缩进。正值表示左侧的偏移,而负值表示右侧的偏移。数组项的编号从1
开始。(U)Int*
.length
— 所需切片的长度。如果指定负值,函数返回开放切片[offset, array_length - length]
。如果省略值,函数返回切片[offset, the_end_of_array]
。(U)Int*
.
返回值
返回指定 offset
的 length
元素的数组切片。 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
语法
参数
arr
— 输入数组。Array(T)
.
返回值
对于空数组返回 1
,对于非空数组返回 0
。 UInt8
.
示例
用法示例
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
语法
参数
arr
— 一个空数组。Array(T)
返回值
一个具有数组默认类型单一值的数组。
示例
基本示例
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
语法
参数
返回值
1
,如果set
包含来自subset
的所有元素。0
,否则。
如果 set 和 subset 元素没有共享共同的父类型,则引发 NO_COMMON_TYPE
异常。
示例
空数组
包含 NULL 值的数组
包含不同类型值的数组
包含字符串值的数组
没有公共类型的数组
数组的数组
hasAny
引入时间:v1.1
语法
参数
返回值
1
,如果arr_x
和arr_y
至少有一个相似的元素。0
,否则。
如果两个数组的任何元素没有共享共同的父类型,则引发 NO_COMMON_TYPE
异常。
示例
一个数组为空
包含 NULL 值的数组
包含不同类型值的数组
没有公共类型的数组
数组的数组
hasSubstr
引入时间:v20.6
语法
参数
返回值
如果数组 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
语法
参数
arr
— 输入数组。Array(T)
.
返回值
对于非空数组返回 1
,对于空数组返回 0
。 UInt8
.
示例
用法示例
range
引入时间:v1.1
语法
参数
start
— 可选。数组的第一个元素。如果使用了step
,这是必需的。默认值:0
。end
— 必需。在此之前构造数组的数字。step
— 可选。决定数组中每个元素之间的增量步长。默认值:1
。
返回值
数组中的数字从 start
到 end - 1
,步长为 step
。
示例
用法示例