acos
引入版本:v1.1.0
返回参数的反余弦。
语法
acos(x)参数
返回值
返回 x 的反余弦。Float*
示例
使用示例
SELECT acos(0.5);1.0471975511965974acosh
Introduced in: v20.12.0
返回反双曲余弦值。
语法
acosh(x)参数
返回值
返回该角的弧度值。取值范围:0 ≤ acosh(x) < +∞。Float64
示例
使用示例
SELECT acosh(1)0asin
引入版本:v1.1.0
计算给定参数的反正弦值。
对于 [-1, 1] 范围内的参数,返回值范围为 [-pi() / 2, pi() / 2]。
语法
asin(x)参数
返回值
返回参数 x 的反正弦值 Float64
示例
反函数
SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1))1 1 0.9999999999999999float32
SELECT toTypeName(asin(1.0::Float32))Float64nan
SELECT asin(1.1), asin(-2), asin(inf), asin(nan)nan nan nan nanasinh
在 v20.12.0 中引入
返回反双曲正弦值。
语法
asinh(x)参数
返回值
返回对应的角度 (以弧度表示) 。取值范围:-∞ < asinh(x) < +∞。Float64
示例
基本用法
SELECT asinh(0)0atan
引入版本:v1.1.0
返回参数的反正切。
语法
atan(x)参数
返回值
返回 x 的反正切值。Float*
示例
用法示例
SELECT atan(1);0.7853981633974483atan2
引入版本:v20.12.0
返回 atan2 值,即欧几里得平面中,从正 x 轴到指向点 (x, y) ≠ (0, 0) 的射线之间的夹角,单位为弧度。
语法
atan2(y, x)参数
y— 射线所经过点的 y 坐标。(U)Int*或Float*或BFloat16或Decimal*x— 射线所经过点的 x 坐标。(U)Int*或Float*或BFloat16或Decimal*
返回值
返回满足 -π < θ ≤ π 的角 θ,单位为弧度。Float64
示例
用法示例
SELECT atan2(1, 1)0.7853981633974483atanh
引入于:v20.12.0
返回反双曲正切。
语法
atanh(x)参数
返回值
返回以弧度表示的角度。取值范围:-∞ < atanh(x) < +∞ Float64
示例
使用示例
SELECT atanh(0)0cbrt
首次引入版本:v1.1.0
返回参数的立方根。
语法
cbrt(x)参数
返回值
返回 x 的立方根。Float*
示例
使用示例
SELECT cbrt(8);2cos
引入版本:v1.1.0
返回该参数的余弦值。
语法
cos(x)参数
返回值
返回 x 的余弦值。Float*
示例
使用示例
SELECT cos(0);1cosh
引入版本:v20.12.0
返回参数的双曲余弦。
语法
cosh(x)参数
返回值
返回值范围:1 ≤ cosh(x) < +∞ Float64
示例
基本用法
SELECT cosh(0)1degrees
在 v22.2.0 中引入
将弧度转换为度数。
语法
degrees(x)参数
返回值
返回 x 的度数值。Float64
示例
基本用法
SELECT degrees(3.141592653589793)180e
引入版本:v1.1.0
返回欧拉常数 (e) 。
语法
e()参数
- 无。
返回值
返回欧拉常数 Float64
示例
使用示例
SELECT e();2.718281828459045erf
引入版本:v1.1.0
如果 x 是非负数,那么 erf(x/(σ√2)) 表示:对于一个服从正态分布、标准差为 σ 的随机变量,其取值与期望值相差大于 x 的概率。
语法
erf(x)参数
返回值
返回误差函数值 Float*
示例
3σ 规则
SELECT erf(3 / sqrt(2))┌─erf(divide(3, sqrt(2)))─┐
│ 0.9973002039367398 │
└─────────────────────────┘erfc
自 v1.1.0 起引入
返回接近 1-erf(x) 的数值,即使 x 很大也不会损失精度。
语法
erfc(x)参数
返回值
返回余误差函数的值 Float*
示例
使用示例
SELECT erfc(0);1exp
引入于:v1.1.0
返回 e 的 x 次幂,其中 x 为传递给该函数的参数。
语法
exp(x)参数
返回值
返回 e^x。(Float*)
示例
基本用法
SELECT round(exp(-1), 4)┌─round(exp(-1), 4)─┐
│ 0.3679 │
└───────────────────┘exp10
Introduced in:v1.1.0
返回给定参数的 10 的幂。
Syntax
exp10(x)参数
返回值
返回 10^x,类型为 Float*
示例
用法示例
SELECT exp10(2);100exp2
Introduced in:v1.1.0
返回给定参数的 2 的幂。
Syntax
exp2(x)参数
返回值
返回 2^x,类型为 Float*
示例
用法示例
SELECT exp2(3);8factorial
引入版本:v22.11.0
计算整数值的阶乘。
0 的阶乘是 1。同样,factorial() 函数对任何负值也都会返回 1。
输入参数的最大正值为 20,值为 21 或更大时将引发异常。
语法
factorial(n)参数
n— 要计算其阶乘的整数值。最大值为 20。(U)Int8/16/32/64
返回值
以 UInt64 返回输入值的阶乘。对于输入值 0 或任意负值,返回 1。UInt64
示例
使用示例
SELECT factorial(10)3628800hypot
引入版本:v20.12.0
返回直角三角形斜边的长度。
hypot 可避免在对非常大或非常小的数值求平方时出现的问题。
语法
hypot(x, y)参数
x— 直角三角形的第一条直角边。(U)Int*或Float*或BFloat16或Decimal*y— 直角三角形的第二条直角边。(U)Int*或Float*或BFloat16或Decimal*
返回值
返回直角三角形斜边的长度。Float64
示例
基本用法
SELECT hypot(1, 1)1.4142135623730951intExp10
在 v1.1.0 中引入
与 exp10 类似,但返回 UInt64 数值。
语法
intExp10(x)参数
返回值
返回 10^x。UInt64
示例
使用示例
SELECT intExp10(2);100intExp2
引入版本:v1.1.0
与 exp2 类似,但返回 UInt64 数值。
语法
intExp2(x)参数
返回值
返回 2^x。UInt64
示例
用法示例
SELECT intExp2(3);8isPrime
引入版本:v26.5.0
如果参数是质数,则返回 1,否则返回 0。
对于较小的值,使用精确查找 bitmap;对于较大的值,使用确定性的 Miller-Rabin 测试。 对于所有受支持的输入类型,结果都完全准确。
对于更宽的无符号整数类型 (UInt128、UInt256) ,请改用 isProbablePrime。
语法
isPrime(n)参数
返回值
如果 n 是质数,则返回 1;否则返回 0。UInt8
示例
质数
SELECT isPrime(17)1合数
SELECT isPrime(18)0较大的 UInt64 质数
SELECT isPrime(18446744073709551557)1最大 UInt64 值
SELECT isPrime(18446744073709551615)0isProbablePrime
引入版本:v26.5.0
如果参数很可能是质数,则返回 1;如果它确定是合数,则返回 0。
对于 UInt8、UInt16、UInt32 和 UInt64,结果是精确的,并且与
isPrime 一致。rounds 参数会被忽略。
对于 UInt128 和 UInt256,返回值为 1 时仅表示概率意义上的结果。可选的 rounds 参数控制
执行多少轮 Miller-Rabin 测试:
轮数越多,误报的概率越低,但运行时间也会增加。在见证值均匀随机的情况下,
对于固定的合数,误报率的上界为 4^(-rounds);默认值 25
可将该上界控制在 10^-15 以下,最大值 256 则可将其控制在 10^-154 以下。
该函数是确定性的:见证值以 n 为种子生成,因此相同的 (n, rounds) 组合始终会产生
相同的结果。4^(-rounds) 这个上界表示在见证值均匀随机时针对单个输入的概率;
而在我们的确定性种子机制下,它描述的则是输入集合上的一个比例——如果某个合数能够骗过其
见证序列,它就会稳定地返回 1。
语法
isProbablePrime(n[, rounds])参数
n— 用于测试是否为质数的无符号整数。UInt8或UInt16或UInt32或UInt64或UInt128或UInt256rounds— 可选的正整数常量,取值范围为[1, 256]。表示UInt128/UInt256的 Miller-Rabin 测试轮数 (对更小的类型将被忽略) 。默认值为25。UInt8或UInt16或UInt32或UInt64
返回值
如果 n 很可能是质数,则返回 1;如果 n 确定为合数,则返回 0。UInt8
示例
小质数
SELECT isProbablePrime(17)1小合数
SELECT isProbablePrime(18)0最大的 UInt64 质数 (精确结果)
SELECT isProbablePrime(18446744073709551557)1梅森质数 M_127 (UInt128)
SELECT isProbablePrime(toUInt128('170141183460469231731687303715884105727'))1Curve25519 基域质数 2^255 - 19 (UInt256)
SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'))1速度更快、置信度较低的检查:5 轮
SELECT isProbablePrime(toUInt256('57896044618658097711785492504343953926634992332820282019728792003956564819949'), 5)1lgamma
引入版本:v1.1.0
返回伽马函数的对数。
语法
lgamma(x)参数
返回值
返回 x 的伽马函数对数。Float*
示例
使用示例
SELECT lgamma(5);3.1780538303479458log
在 v1.1.0 中引入
返回参数的自然对数。
语法
log(x)别名: ln
参数
返回值
返回 x 的自然对数。Float*
示例
使用示例
SELECT log(10);2.3025850938475476log10
引入版本:v1.1.0
返回参数的十进制对数。
语法
log10(x)参数
返回值
返回 x 的常用对数。Float*
示例
使用示例
SELECT log10(100);2log1p
引入版本:v20.12.0
计算 log(1+x)。
对于较小的 x 值,log1p(x) 的计算结果比 log(1+x) 更精确。
语法
log1p(x)参数
返回值
返回值的范围为:-∞ < log1p(x) < +∞ Float64
示例
使用示例
SELECT log1p(0)0log2
引入版本:v1.1.0
返回参数的以 2 为底的对数。
语法
log2(x)参数
返回值
返回 x 的以 2 为底对数。Float*
示例
使用示例
SELECT log2(8);3pi
在 v1.1.0 中引入
返回 pi (π)。
语法
pi()参数
- 无。
返回值
返回 pi Float64
示例
用法示例
SELECT pi();3.141592653589793pow
首次引入版本:v1.1.0
返回 x 的 y 次方。
语法
pow(x, y)别名: power
参数
x— 底数。(U)Int8/16/32/64或Float*或BFloat16或Decimal*y— 指数。(U)Int8/16/32/64或Float*或BFloat16或Decimal*
返回值
返回 x^y,类型为 Float64
示例
用法示例
SELECT pow(2, 3);8proportionsZTest
引入版本:v22.3.0
返回双样本比例 Z 检验的检验统计量,这是一种用于比较两个总体 x 和 y 比例的统计检验。 该函数同时支持合并估计和非合并估计两种标准误估计方法。 在合并版本中,会先对两个比例取平均值,再仅使用这一个比例来估计标准误。 在非合并版本中,则分别使用这两个比例进行估计。
语法
proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type)参数
successes_x— 总体 x 中成功的次数。UInt64successes_y— 总体 y 中成功的次数。UInt64trials_x— 总体 x 中试验次数。UInt64trials_y— 总体 y 中试验次数。UInt64conf_level— 检验的置信水平。Float64pool_type— 用于估计标准误的池化方法。可以是 'unpooled' 或 'pooled'。String
返回值
返回一个包含以下内容的元组:z_stat (Z 统计量) 、p_val (P 值) 、ci_low (置信区间下限) 、ci_high (置信区间上限) 。Tuple(Float64, Float64, Float64, Float64)
示例
使用示例
SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled');┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐
│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │
└────────────────────────────────────────────────────────────────────────────────────┘radians
首次引入版本:v22.2.0
将角度转换为弧度。
语法
radians(x)参数
返回值
返回以弧度表示的值 Float64
示例
用法示例
SELECT radians(180)3.141592653589793sigmoid
引入版本:v20.1.0
计算 sigmoid 函数:1 / (1 + exp(-x))。sigmoid 函数将任意实数映射到 (0, 1) 区间,常用于机器学习。
语法
sigmoid(x)参数
返回值
返回输入值的 sigmoid 值,取值范围为 (0, 1)。Float64
示例
基本用法
SELECT sigmoid(0)0.5sign
引入版本:v21.2.0
返回实数的符号。
语法
sign(x)参数
返回值
当 x < 0 时返回 -1,当 x = 0 时返回 0,当 x > 0 时返回 1。Int8
示例
零的符号
SELECT sign(0)0正号
SELECT sign(1)1负号
SELECT sign(-1)-1sin
Introduced in: v1.1.0
返回参数的正弦值。
Syntax
sin(x)参数
返回值
返回 x 的正弦值。
示例
simple
SELECT sin(1.23)0.9424888019316975sinh
首次引入版本:v20.12.0
返回双曲正弦。
语法
sinh(x)参数
返回值
返回值的取值区间为:-∞ < sinh(x) < +∞。Float64
示例
用法示例
SELECT sinh(0)0sqrt
引入版本:v1.1.0
返回参数的平方根。
语法
sqrt(x)参数
返回值
返回 x 的平方根。Float*
示例
使用示例
SELECT sqrt(16);4tan
Introduced in: v1.1.0
返回参数的正切值。
Syntax
tan(x)参数
返回值
返回 x 的正切值。Float*
示例
使用示例
SELECT tan(0);0tanh
引入于:v20.1.0
返回双曲正切。
语法
tanh(x)参数
返回值
返回值的取值区间为:-1 < tanh(x) < 1 Float*
示例
使用示例
SELECT tanh(0)0tgamma
版本引入:v1.1.0
返回伽马函数。
语法
tgamma(x)参数
返回值
返回伽马函数值 Float*
示例
使用示例
SELECT tgamma(5);24widthBucket
引入版本:v23.3.0
返回直方图中 operand 参数所在的桶编号。该直方图包含 count 个等宽桶,覆盖从 low 到 high 的范围。如果 operand 小于 low,则返回 0;如果 operand 大于或等于 high,则返回 count+1。
此外,还提供了一个名为 WIDTH_BUCKET 的不区分大小写别名,以兼容其他数据库。
语法
widthBucket(operand, low, high, count)别名: width_bucket
参数
operand— 要确定其所在桶的值。(U)Int8/16/32/64low— 直方图范围的下界。(U)Int8/16/32/64high— 直方图范围的上界。(U)Int8/16/32/64count— 等宽桶的数量。不能为零。UInt8/16/32/64
返回值
返回整数形式的桶编号。如果 operand < low,则返回 0;如果 operand >= high,则返回 count+1。UInt8/16/32/64
示例
使用示例
SELECT widthBucket(10.15, -8.6, 23, 18)11