Tuple 函数
以下文档是从 system.functions 系统表生成的。
flattenTuple
引入于:v22.6
展平一个命名和嵌套的元组。返回元组的元素是输入元组的路径。
语法
参数
input— 要展平的命名和嵌套元组。Tuple(n1 T1[, n2 T2, ... ])
返回值
返回一个输出元组,其元素是从原始输入得到的路径。 Tuple(T)
示例
使用示例
tuple
引入于:v
通过组合输入参数返回一个元组。
对于类型为 T1, T2, ... 的列 C1, C2, ...,如果它们的名称唯一且可以被视为未加引号的标识符,则返回一个包含这些列的命名 Tuple(C1 T1, C2 T2, ...) 类型的元组,否则返回一个 Tuple(T1, T2, ...) 元组。执行此函数没有成本。元组通常用作 IN 运算符的参数的中间值,或用于创建 lambda 函数的正式参数列表。元组不能写入表。
该函数实现了运算符 (x, y, ...)。
语法
参数
- 无。
返回值
示例
典型
tupleConcat
引入于:v23.8
组合作为参数传递的元组。
语法
参数
tupleN— 任意数量的 Tuple 类型的参数。Tuple(T)
返回值
返回一个包含来自输入元组的所有元素的元组。 Tuple(T)
示例
使用示例
tupleDivide
引入于:v21.11
计算两个相同大小的元组中对应元素的除法。
除以零将返回 inf。
语法
参数
t1— 第一个元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)t2— 第二个元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)
返回值
返回包含除法结果的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tupleDivideByNumber
引入于:v21.11
返回一个元组,其中所有元素除以一个数字。
除以零将返回 inf。
语法
参数
tuple— 要除法的元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)number— 除数。(U)Int*或Float*或Decimal
返回值
返回一个包含除法元素的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tupleElement
引入于:v1.1
按索引或名称从元组中提取一个元素。
对于按索引访问,预计是一个从 1 开始的数字索引。对于按名称访问,可以将元素名称作为字符串提供(仅适用于命名元组)。
支持负索引。在这种情况下,将选择相应的元素,从末尾开始编号。例如,tuple.-1 是元组中的最后一个元素。
可选的第三个参数指定一个默认值,当访问的元素不存在时返回该值而不是抛出异常。所有参数必须是常量。
此函数具有零运行时成本,并实现了运算符 x.index 和 x.name。
语法
参数
tuple— 一个元组或元组数组。Tuple(T)或Array(Tuple(T))index— 列索引,从 1 开始。const UInt8/16/32/64name— 元素的名称。const Stringdefault_value— 当索引超出范围或元素不存在时返回的默认值。Any
返回值
返回指定索引或名称处的元素。 Any
示例
索引访问
负索引
带有表的命名元组
使用默认值
运算符语法
tupleHammingDistance
引入于:v21.1
返回两个相同大小的元组之间的 汉明距离。
语法
参数
返回值
返回汉明距离。 UInt8/16/32/64
示例
使用示例
使用 MinHash 检测半重复字符串
tupleIntDiv
引入于:v23.8
对两个元组的分子和分母执行整数除法。返回一个商的元组。如果任一元组包含非整数元素,则结果将通过对每个非整数分子或除数四舍五入到最接近的整数来计算。除以 0 会导致抛出错误。
语法
参数
tuple_num— 分子元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)tuple_div— 分母元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)
返回值
返回商的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
使用小数
tupleIntDivByNumber
引入于:v23.8
执行分子元组除以给定分母的整数除法,并返回商的元组。如果输入参数中的任何一个包含非整数元素,则结果将通过对每个非整数分子或除数四舍五入到最接近的整数来计算。除以 0 会抛出错误。
语法
参数
tuple_num— 分子元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)div— 除数。(U)Int*或Float*或Decimal
返回值
返回商的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
使用小数
tupleIntDivOrZero
引入于:v23.8
类似于 tupleIntDiv,对分子元组和分母元组执行整数除法,并返回商的元组。在除以 0 的情况下,返回商为 0 而不是抛出异常。如果任一元组包含非整数元素,则结果将通过对每个非整数分子或除数四舍五入到最接近的整数来计算。
语法
参数
tuple_num— 分子元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)tuple_div— 分母元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)
返回值
返回商的元组。对于除数为 0 的商,返回 0。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
带有零除数
tupleIntDivOrZeroByNumber
引入于:v23.8
类似于 tupleIntDivByNumber,它对分子元组除以给定的分母执行整数除法,并返回商的元组。它不会因零除数而抛出错误,而是返回商为零。如果元组或 div 包含非整数元素,则结果将通过对每个非整数分子或除数四舍五入到最接近的整数来计算。
语法
参数
tuple_num— 分子元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)div— 除数。(U)Int*或Float*或Decimal
返回值
返回商的元组,其中除数为 0 的商为 0。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
带有零除数
tupleMinus
引入于:v21.11
计算两个相同大小的元组中对应元素的差。
语法
别名:vectorDifference
参数
t1— 第一个元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)t2— 第二个元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)
返回值
返回一个包含减法结果的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tupleModulo
引入于:v23.8
返回两个元组的除法运算的余数(模数)的元组。
语法
参数
tuple_num— 分子元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)tuple_mod— 模数元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)
返回值
返回除法的余数元组。除以零会抛出错误。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tupleModuloByNumber
引入于:v23.8
返回一个元组,包含一个元组与给定除数进行除法运算后的模数(余数)。
语法
参数
tuple_num— 元组的分子元素。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)div— 除数。(U)Int*或Float*或Decimal
返回值
返回除法的余数元组。除以零会抛出错误。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tupleMultiply
引入于:v21.11
计算两个相同大小的元组中对应元素的乘积。
语法
参数
t1— 第一个元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)t2— 第二个元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)
返回值
返回一个包含乘积结果的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tupleMultiplyByNumber
引入于:v21.11
返回一个元组,其中所有元素都乘以一个数字。
语法
参数
tuple— 要相乘的元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)number— 乘数。(U)Int*或Float*或Decimal
返回值
返回一个包含相乘后元素的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tupleNames
引入于:v
将元组转换为列名称的数组。对于形式为 Tuple(a T, b T, ...) 的元组,它将返回一个字符串数组,表示元组的命名列。如果元组元素没有显式名称,则将使用它们的索引作为列名称。
语法
参数
- 无。
返回值
示例
典型
tupleNegate
引入于:v21.11
计算元组元素的否定值。
语法
参数
t— 要取反的元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)
返回值
返回一个包含取反结果的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tuplePlus
引入于:v21.11
计算两个相同大小的元组中对应元素的和。
语法
别名: vectorSum
参数
t1— 第一个元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)t2— 第二个元组。Tuple((U)Int*)或Tuple(Float*)或Tuple(Decimal)
返回值
返回一个包含对应输入元组参数之和的元组。 Tuple((U)Int*) 或 Tuple(Float*) 或 Tuple(Decimal)
示例
基本用法
tupleToNameValuePairs
引入于: v21.9
将元组转换为 (name, value) 对的数组。例如,元组 Tuple(n1 T1, n2 T2, ...) 转换为 Array(Tuple('n1', T1), Tuple('n2', T2), ...)。元组中的所有值必须具有相同的类型。
语法
参数
tuple— 具有任何类型值的命名元组。Tuple(n1 T1[, n2 T2, ...])
返回值
返回一个包含 (name, value) 对的数组。 Array(Tuple(String, T))
示例
命名元组
未命名元组
untuple
在调用位置执行 元组 元素的语法替换。
结果列的名称是特定于实现的,并且可能会更改。不要假设在 untuple 之后有特定的列名称。
语法
您可以使用 EXCEPT 表达式来跳过查询结果中的列。
参数
x— 一个tuple函数、列或元组元素。 Tuple。
返回值
- 无。
示例
输入表
使用 Tuple 类型列作为 untuple 函数参数的示例
查询
结果
使用 EXCEPT 表达式的示例
查询
结果
距离函数
所有支持的函数在 距离函数文档 中描述。