Skip to content

数学相关函数

以下所有的函数不全是返回一个 Float64 类型的数值。返回结果总是以尽可能最大精度返回,但还是可能与机器中可表示最接近该值的数值不同。

如果参数不能转为数值,将会使用 0 代替

例如:

sql
┌─abs('abc')──────┐
0
└─────────────────┘

表达式中参数说明:

  • expr :表达式
  • columnName :字段名

abs

绝对值函数。

语法

sql
abs(n: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT abs(-1)

┌─abs(-1)───────────────────────┐
1
└───────────────────────────────┘

exp

返回 ex 次方

语法

sql
exp(n: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT exp(2), exp('abc') 

┌──exp(2)─────────────┬──exp('abc')───────┐
7.38905609893065NULL             |
└─────────────────────┴───────────────────┘

log

返回自然对数 (以 e 为底的对数)

语法

sql
log(n: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

当参数不能转为数值时,将会使用 0 代替,该函数将返回 NULL

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT log(10), log('abc')

┌──log(10) ────────────┬──log('abc')─────┐
2.302585092994046NULL          |
└──────────────────────┴─────────────────┘

log2

返回以 2 为底的对数

语法

sql
log2(n: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

当参数不能转为数值时,将会使用 0 代替,该函数将返回 NULL

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT log2(65536), log2('abc')
┌──log2(65536)────┬──log2('abc')─────┐
16NULL             |
└─────────────────┴──────────────────┘

log10

返回以 10 为底的对数

语法

sql
log10(n: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

当参数不能转为数值时,将会使用 0 代替,该函数将返回 NULL

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT log10(100), log10('abc')

┌──log10(100) ────┬──log10('abc')─────┐
2NULL            |
└─────────────────┴───────────────────┘

pow/power

返回 xy 次方

语法

sql
pow/power(x: expr | columnName, y: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT pow/power(2, 2) 

┌──pow/power(2, 2)──────────┐
4
└───────────────────────────┘

sqrt

返回 x 的平方根,如果 x < 0, 则返回 NULL

语法

sql
sqrt(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT sqrt(16)

┌──sqrt(16) ─────────────────┐
4
└────────────────────────────┘

cos

求余弦值

语法

sql
cos(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT cos(45)

┌──cos(45) ─────────────────┐
0.5253219888177297
└───────────────────────────┘

sin

求正弦值

语法

sql
sin(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT sin(45)

┌──sin(45) ─────────────────┐
0.850903524534118
└───────────────────────────┘

tan

求正切值

语法

sql
tan(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT tan(45)

┌──tan(45) ─────────────────┐
1.619775190543861
└───────────────────────────┘

acos

x 的反余弦值

语法

sql
acos(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT acos(0.75)

┌──acos(0.75) ─────────────────┐
0.7227342478134156
└──────────────────────────────┘

asin

求反正弦值

语法

sql
asin(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT asin(0.2)
┌──asin(0.2) ─────────────────┐
0.20135792079033082
└─────────────────────────────┘

atan

求反正切值

语法

sql
atan(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT atan(0.75)

┌──atan(0.75) ────────────────┐
0.6435011087932844
└─────────────────────────────┘

atan2

求反正切值

语法

sql
atan2(x: expr | columnName, y: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT atan2(0.75, 1)

┌──atan2(0.75, 1) ─────────────┐
0.6435011087932844
└──────────────────────────────┘

ceil

向上取整,如果 xNULL,则返回 NULL

语法

sql
ceil(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT ceil(1.2)
┌──ceil(1.2) ─────────────────┐
2
└─────────────────────────────┘

floor

向下取整,如果 xNULL,则返回 NULL

语法

sql
floor(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT floor(1.2)

┌──floor(1.2) ──────────────────┐
1
└───────────────────────────────┘

round

返回最接近 x 的整数,如果 xNULL,则返回 NULL

语法

sql
round(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT round(1.2)
┌──round(1.2) ──────────────────┐
1
└───────────────────────────────┘

sign

返回 x的符号,x 是负数、0、正数分别返回 -101

语法

sql
sign(x: expr | columnName)

参数

  • expr - 表达式。
  • columnName - 字段名或字段别名。

返回值

  • 返回 Int64 类型的数值

示例

sql
> SELECT sign(1)

┌──sign(1) ─────────────────────┐
1
└───────────────────────────────┘

pi

返回圆周率

语法

sql
pi()

参数
无参数

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT pi()

┌──pi() ────────────────────────┐
3.141592653589793
└───────────────────────────────┘

rand

返回 0 到 1 的随机数

语法

sql
rand()

参数
无参数

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT rand()

┌──rand()───────────────────────┐
0.6197751905438615
└───────────────────────────────┘