数学函数
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 中的所有数值类型。
返回值
- 对于
x < 0
返回 -1 - 对于
x = 0
返回 0 - 对于
x > 0
返回 1
类型: 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
:在 pooled 版本中,两个比例取平均值,仅使用一个比例来估计标准误差。在 unpooled 版本中,两个比例分别使用。
返回值
示例
查询
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) │
└────────────────────────────────────────────────────────────────────────────────────┘