跳到主要内容
跳到主要内容

数学函数

acos

自 v1.1 版本引入

返回参数的反余弦值。

语法

acos(x)

参数

返回值

返回 x 的反余弦,类型为 Float*

示例

用法示例

SELECT acos(0.5);
1.0471975511965979

acosh

自 v20.12 版本引入

返回反双曲余弦值。

语法

反双双曲余弧函数 acosh(x)

参数

返回值

返回以弧度表示的角度。取值范围:0 ≤ acosh(x) < +∞Float64

示例

使用示例

SELECT acosh(1)
0

asin

自 v1.1 引入

计算给定参数的反正弦值。 对于范围在 [-1, 1] 内的参数,返回值位于 [-pi() / 2, pi() / 2] 范围内。

语法

asin(x)

参数

返回值

返回给定参数 x 的反正弦值 Float64

示例

反函数

SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1))
1 1 1

float32

SELECT toTypeName(asin(1.0::Float32))
Float64

NaN(非数字)

SELECT asin(1.1), asin(-2), asin(inf), asin(nan)
nan nan nan nan

asinh

引入版本:v20.12

返回反双曲正弦函数的值。

语法

asinh(x)

参数

  • x — 某一角度的双曲正弦值。取值范围:-∞ < x < +∞(U)Int*Float*Decimal*

返回值

返回以弧度表示的角度。取值范围:-∞ < asinh(x) < +∞Float64

示例

基本用法

SELECT asinh(0)
0

atan

自 v1.1 起引入

返回参数的反正切值。

语法

atan(x)

参数

返回值

返回 x 的反正切。Float*

示例

用法示例

SELECT atan(1);
0.7853981633974483

atan2

引入于:v20.12

返回欧几里得平面中,从正 x 轴到指向点 (x, y) ≠ (0, 0) 的射线的夹角,结果以弧度表示。

语法

atan2(y, x)

参数

返回值

返回一个弧度制角度 θ,满足 -π < θ ≤ π,类型为 Float64

示例

使用示例

SELECT atan2(1, 1)
0.7853981633974483

atanh

引入版本:v20.12

返回反双曲正切函数的值。

语法

atanh(x)

参数

  • x — 角度的双曲正切值。取值区间:-1 < x < 1。(U)Int*Float*Decimal* 类型。(U)Int*Float*Decimal*

返回值

返回以弧度表示的角度值。取值区间:-∞ < atanh(x) < +∞。Float64

示例

使用示例

SELECT atanh(0)
0

cbrt

自 v1.1 引入

返回参数的立方根。

语法

cbrt(x)

参数

返回值

返回 x 的立方根。Float*

示例

用法示例

SELECT cbrt(8);
2

cos

自 v1.1 起引入

返回参数的余弦值。

语法

cos(x)

参数

返回值

返回 x 的余弦值。Float*

示例

用法示例

SELECT cos(0);
1

cosh

自 v20.12 版本引入

返回参数的双曲余弦值。

语法

cosh(x)

参数

返回值

返回取值范围:1 ≤ cosh(x) < +∞ Float64

示例

基础用法

SELECT cosh(0)
1

degrees

引入版本:v22.2

将弧度值转换为角度(度)。

语法

degrees(x)

参数

返回值

返回将 x 转换为角度(度)的值。Float64

示例

基本用法

SELECT degrees(3.141592653589793)
180

e

引入版本:v1.1

返回自然常数 (e)。

语法

e()

参数

  • 无。

返回值

返回欧拉常数,类型为 Float64

示例

使用示例

SELECT e();
2.718281828459045

erf

自 v1.1 起引入

如果 x 为非负数,则 erf(x/(σ√2)) 表示:具有标准差 σ 的正态分布随机变量,其取值与期望值相差超过 x 的概率。

语法

erf(x)

参数

返回值

返回误差函数的值 Float*

示例

三西格玛法则

SELECT erf(3 / sqrt(2))
┌─erf(divide(3, sqrt(2)))─┐
│      0.9973002039367398 │
└─────────────────────────┘

erfc

在 v1.1 中引入

返回在 x 较大时仍能精确逼近 1 - erf(x) 的数值。

语法

erfc(x)

参数

返回值

返回余误差函数值 Float*

示例

用法示例

SELECT erfc(0);
1

exp

引入于:v1.1

返回 ex 次幂,其中 x 是传递给该函数的参数。

语法

exp(x)

参数

返回值

返回值为 e^x,类型为 Float*

示例

基本用法

SELECT round(exp(-1), 4)
┌─round(exp(-1), 4)─┐
│            0.3679 │
└───────────────────┘

exp10

引入版本:v1.1

返回 10 的给定参数次幂。

语法

exp10(x)

参数

返回值

返回 10^x,类型为 Float*

示例

用法示例

SELECT exp10(2);
100

exp2

引入版本:v1.1

返回以 2 为底、给定参数为指数的幂。

语法

exp2(x)

参数

返回值

返回 2^x,类型为 Float*

示例

用法示例

SELECT exp2(3);
8

factorial

自 v22.11 起引入

计算一个整数值的阶乘。 0 的阶乘为 1。同样,factorial() 函数对任何负值也返回 1。 输入参数的最大正值为 20,取值为 21 或更大时会抛出异常。

语法

阶乘(n)

参数

返回值

返回输入值的阶乘,类型为 UInt64。当输入为 0 或任何负数时,返回 1。UInt64

示例

用法示例

factorial(10)
3628800

hypot

引入版本:v20.12

返回直角三角形斜边的长度。 hypot 函数可以避免在对非常大或非常小的数进行平方运算时出现的问题。

语法

hypot(x, y)

参数

返回值

返回直角三角形斜边的长度。Float64

示例

基本用法

SELECT hypot(1, 1)
1.4142135623730951

intExp10

引入版本:v1.1

类似于 exp10,但返回一个 UInt64 类型的数值。

语法

intExp10(x)

参数

返回值

返回 10^x。UInt64

示例

用法示例

SELECT intExp10(2);
100

intExp2

引入自:v1.1

exp2 类似,但返回一个 UInt64 类型的数值。

语法

intExp2(x)

参数

返回值

返回 2 的 x 次方。UInt64

示例

用法示例

SELECT intExp2(3);
8

lgamma

自 v1.1 版本引入

返回伽马函数的对数。

语法

lgamma(x)

参数

返回值

返回 x 的伽马函数的对数值。Float*

示例

使用示例

SELECT lgamma(5);
3.1780538303479458

log

自 v1.1 版本引入

返回参数的自然对数。

语法

log(x)

别名: ln

参数

返回值

返回 x 的自然对数。Float*

示例

用法示例

SELECT log(10);
2.302585092994046

log10

自 v1.1 起可用。

返回参数的十进制对数。

语法

log10(x)

参数

返回值

返回 x 的常用对数。Float*

示例

用法示例

SELECT log10(100);
2

log1p

自 v20.12 引入

计算 log(1+x)。 对于较小的 x 值,log1p(x) 比直接计算 log(1+x) 更精确。

语法

log1p(x)

参数

返回值

返回值取自区间:-∞ < log1p(x) < +∞,类型为 Float64

示例

使用示例

SELECT log1p(0)
0

log2

首次引入于:v1.1

返回其参数的二进制对数。

语法

log2(x)

参数

返回值

返回 x 的二进制对数。Float*

示例

用法示例

SELECT log2(8);
3

pi

自 v1.1 起引入

返回数学常数 π。

语法

pi()

参数

  • 无。

返回值

返回圆周率 π,类型为 Float64

示例

使用示例

SELECT pi();
3.141592653589793

pow

自 v1.1 引入

返回 x 的 y 次幂。

语法

pow(x, y)

别名: power

参数

返回值

返回 x^y,类型为 Float64

示例

用法示例

SELECT pow(2, 3);
8

radians

引入版本:v22.2

将角度转换为弧度。

语法

弧度(x)

参数

返回值

返回以弧度为单位的值,类型为 Float64

示例

用法示例

SELECT radians(180)
3.141592653589793

sign

自 v21.2 版本引入。

返回实数的符号。

语法

符号(x)

参数

返回值

返回值类型为 Int8x < 0 返回 -1x = 0 返回 0x > 0 返回 1

示例

零的符号

SELECT sign(0)
0

正号

SELECT sign(1)
1

负号

SELECT sign(-1)
-1

sin

自版本 v 引入。

返回参数的正弦值。

语法

sin(x)

参数

返回值

返回 x 的正弦值。

示例

基本示例

SELECT sin(1.23)
0.9424888019316975

sinh

引入于:v20.12

返回双曲正弦值。

语法

sinh(x)

参数

  • x — 以弧度表示的角度。取值范围:-∞ < x < +∞。类型为 (U)Int*Float*Decimal*

返回值

返回值取值范围:-∞ < sinh(x) < +∞,类型为 Float64

示例

使用示例

SELECT sinh(0)
0

sqrt

自 v1.1 起引入

返回参数的平方根。

语法

sqrt(x)

参数

返回值

返回 x 的平方根 Float*

示例

用法示例

SELECT sqrt(16);
4

tan

自 v1.1 起引入

返回参数的正切值。

语法

tan(x)

参数

返回值

返回 x 的正切值。Float*

示例

用法示例

SELECT tan(0);
0

tanh

首次引入于:v20.1

返回双曲正切函数值。

语法

tanh(x)

参数

  • x — 以弧度表示的角度。取值范围:-∞ < x < +∞。类型为 (U)Int*Float*Decimal*

返回值

返回值范围:-1 < tanh(x) < 1,类型为 Float*

示例

使用示例

SELECT tanh(0)
0

tgamma

引入版本:v1.1

返回伽马函数值。

语法

tgamma(x)

参数

返回值

返回 x 的伽马函数值,类型为 Float*

示例

使用示例

SELECT tgamma(5);
24

widthBucket

引入于:v23.3

在一个具有 count 个等宽桶、覆盖范围从 lowhigh 的直方图中,返回参数 operand 所落入的桶的编号。如果 operand 小于 low,则返回 0;如果 operand 大于或等于 high,则返回 count+1。 同时还提供了一个不区分大小写的别名 WIDTH_BUCKET,用于与其他数据库保持兼容性。

语法

widthBucket(operand, low, high, count)

别名: width_bucket

参数

返回值

返回桶编号,类型为整数。若 operand < low,返回 0;若 operand >= high,返回 count + 1。UInt8/16/32/64

示例

用法示例

widthBucket(10.15, -8.6, 23, 18)
11