数学函数
e
返回 (欧拉常数).
语法
e()
返回值
类型:Float64.
pi
返回 (圆周率).
语法
pi()
返回值
类型:Float64.
exp
返回 , 其中 x 是函数的给定参数。
语法
exp(x)
参数
示例
查询
SELECT round(exp(-1), 4);
结果
┌─round(exp(-1), 4)─┐
│ 0.3679 │
└───────────────────┘
返回值
类型:Float*.
log
返回参数的自然对数。
语法
log(x)
别名:ln(x)
参数
返回值
类型:Float*.
exp2
返回 2 的给定参数次方
语法
exp2(x)
参数
返回值
类型:Float*.
intExp2
与 exp
相似,但返回 UInt64。
语法
intExp2(x)
log2
返回参数的二进制对数。
语法
log2(x)
参数
返回值
类型:Float*.
exp10
返回 10 的给定参数次方。
语法
exp10(x)
参数
返回值
类型:Float*.
intExp10
与 exp10
相似,但返回 UInt64。
语法
intExp10(x)
log10
返回参数的十进制对数。
语法
log10(x)
参数
返回值
类型:Float*.
sqrt
返回参数的平方根。
sqrt(x)
参数
返回值
类型:Float*.
cbrt
返回参数的立方根。
cbrt(x)
参数
返回值
类型:Float*.
erf
如果 x
非负,则 的正态分布的随机变量取值与期望值相差超过 x
的概率。 是一个具有标准差为
语法
erf(x)
参数
返回值
类型:Float*.
示例
(三西格玛法则)
SELECT erf(3 / sqrt(2));
┌─erf(divide(3, sqrt(2)))─┐
│ 0.9973002039367398 │
└─────────────────────────┘
erfc
返回一个接近于 的数字,而不会在较大的 x
值上损失精度。
语法
erfc(x)
参数
返回值
类型:Float*.
lgamma
返回伽马函数的对数。
语法
lgamma(x)
参数
返回值
类型:Float*.
tgamma
返回伽马函数。
语法
gamma(x)
参数
返回值
类型:Float*.
sin
返回参数的正弦。
语法
sin(x)
参数
返回值
类型:Float*.
示例
查询
SELECT sin(1.23);
0.9424888019316975
cos
返回参数的余弦。
语法
cos(x)
参数
返回值
类型:Float*.
tan
返回参数的正切。
语法
tan(x)
参数
返回值
类型:Float*.
asin
返回参数的反正弦。
语法
asin(x)
参数
返回值
类型:Float*.
acos
返回参数的反余弦。
语法
acos(x)
参数
返回值
类型:Float*.
atan
返回参数的反正切。
语法
atan(x)
参数
返回值
类型:Float*.
pow
返回 .
语法
pow(x, y)
别名:power(x, y)
参数
x
- (U)Int8/16/32/64, Float* 或 Decimal*y
- (U)Int8/16/32/64, Float* 或 Decimal*
返回值
类型:Float64.
cosh
返回参数的双曲余弦。
语法
cosh(x)
参数
返回值
- 值来自区间:.
类型:Float64。
示例
SELECT cosh(0);
结果
┌─cosh(0)──┐
│ 1 │
└──────────┘
acosh
返回反双曲余弦。
语法
acosh(x)
参数
返回值
- 角度,以弧度表示。值来自区间:.
类型:Float64。
示例
SELECT acosh(1);
结果
┌─acosh(1)─┐
│ 0 │
└──────────┘
sinh
返回双曲正弦。
语法
sinh(x)
参数
返回值
- 值来自区间:.
类型:Float64。
示例
SELECT sinh(0);
结果
┌─sinh(0)──┐
│ 0 │
└──────────┘
asinh
返回反双曲正弦。
语法
asinh(x)
参数
返回值
- 角度,以弧度表示。值来自区间:.
类型:Float64。
示例
SELECT asinh(0);
结果
┌─asinh(0)─┐
│ 0 │
└──────────┘
tanh
返回双曲正切。
语法
tanh(x)
参数
返回值
- 值来自区间:.
类型:Float*。
示例
SELECT tanh(0);
结果
0
atanh
返回反双曲正切。
语法
atanh(x)
参数
返回值
- 角度,以弧度表示。值来自区间:.
类型:Float64。
示例
SELECT atanh(0);
结果
┌─atanh(0)─┐
│ 0 │
└──────────┘
atan2
返回atan2,以弧度表示的欧几里得平面中的角度,该角度是正 x 轴与到点 (x, y) ≠ (0, 0)
的射线之间的夹角。
语法
atan2(y, x)
参数
返回值
- 角度
θ
满足 ,以弧度表示。
类型:Float64。
示例
SELECT atan2(1, 1);
结果
┌────────atan2(1, 1)─┐
│ 0.7853981633974483 │
└────────────────────┘
hypot
返回直角三角形的斜边长度。Hypot 避免了对非常大或非常小的数字进行平方时可能出现的问题。
语法
hypot(x, y)
参数
返回值
- 直角三角形斜边的长度。
类型:Float64。
示例
SELECT hypot(1, 1);
结果
┌────────hypot(1, 1)─┐
│ 1.4142135623730951 │
└────────────────────┘
log1p
计算 log(1+x)
。对于 x 的小值,计算 log1p(x)
比 log(1+x)
更精确。
语法
log1p(x)
参数
返回值
- 区间内的值:.
类型:Float64。
示例
SELECT log1p(0);
结果
┌─log1p(0)─┐
│ 0 │
└──────────┘
sign
返回实数的符号。
语法
sign(x)
参数
x
— 从 到 的值。支持 ClickHouse 中的所有数值类型。
返回值
- -1 用于
x < 0
- 0 用于
x = 0
- 1 用于
x > 0
类型:Int8。
示例
零值的符号
SELECT sign(0);
结果
┌─sign(0)─┐
│ 0 │
└─────────┘
正值的符号
SELECT sign(1);
结果
┌─sign(1)─┐
│ 1 │
└─────────┘
负值的符号
SELECT sign(-1);
结果
┌─sign(-1)─┐
│ -1 │
└──────────┘
sigmoid
返回sigmoid 函数。
语法
sigmoid(x)
参数
返回值
- sigmoid 曲线上对应 0 到 1 之间的值。Float64。
示例
查询
SELECT round(sigmoid(x), 5) FROM (SELECT arrayJoin([-1, 0, 1]) AS x);
结果
0.26894
0.5
0.73106
degrees
将弧度转换为度。
语法
degrees(x)
参数
返回值
- 以度为单位的值。Float64。
示例
SELECT degrees(3.141592653589793);
结果
┌─degrees(3.141592653589793)─┐
│ 180 │
└────────────────────────────┘
radians
将度转换为弧度。
语法
radians(x)
参数
返回值
- 以弧度为单位的值。
类型:Float64。
示例
SELECT radians(180);
结果
┌──────radians(180)─┐
│ 3.141592653589793 │
└───────────────────┘
factorial
计算整数的阶乘。适用于所有原生整数类型,包括 UInt(8|16|32|64) 和 Int(8|16|32|64)。返回值类型为 UInt64。
0 的阶乘为 1。同样,对于任何负值,factorial() 函数都返回 1。输入参数的最大正值为 20,输入参数为 21 或更大将导致异常抛出。
语法
factorial(n)
示例
SELECT factorial(10);
结果
┌─factorial(10)─┐
│ 3628800 │
└───────────────┘
width_bucket
返回 operand
所在直方图桶的编号,该直方图具有 count
个等宽桶,跨越从 low
到 high
的范围。如果 operand < low
,则返回 0
,如果 operand >= high
,则返回 count+1
。
operand
、low
、high
可以是任何原生数字类型。count
只能是无符号原生整数,并且其值不能为零。
语法
widthBucket(operand, low, high, count)
别名:WIDTH_BUCKET
示例
SELECT widthBucket(10.15, -8.6, 23, 18);
结果
┌─widthBucket(10.15, -8.6, 23, 18)─┐
│ 11 │
└──────────────────────────────────┘
proportionsZTest
返回双比例 Z 检验的检验统计量 - 一种比较两个总体 x
和 y
中比例的统计检验。
语法
proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type)
参数
successes_x
:总体x
中的成功次数。UInt64。successes_y
:总体y
中的成功次数。UInt64。trials_x
:总体x
中的试验次数。UInt64。trials_y
:总体y
中的试验次数。UInt64。conf_level
:检验的置信水平。Float64。pool_type
:合并的选择(估计标准误差的方式)。可以是unpooled
或pooled
。String。
对于参数 pool_type
:在合并版本中,两个比例被平均,并且只使用一个比例来估计标准误差。在未合并版本中,两个比例分别使用。
返回值
示例
查询
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) │
└────────────────────────────────────────────────────────────────────────────────────┘