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 ​

返回 e 的 x 次方

语法

sql
exp(n: expr | columnName)

参数

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

返回值

  • 返回 Float64 类型的数值

示例

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

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

log ​

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

语法

sql
log(n: expr | columnName)

参数

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

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

返回值

  • 返回 Float64 类型的数值

示例

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

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

log2 ​

返回以 2 为底的对数

语法

sql
log2(n: expr | columnName)

参数

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

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

返回值

  • 返回 Float64 类型的数值

示例

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

log10 ​

返回以 10 为底的对数

语法

sql
log10(n: expr | columnName)

参数

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

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

返回值

  • 返回 Float64 类型的数值

示例

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

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

pow/power ​

返回 x 的 y 次方

语法

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 ​

向上取整,如果 x 为 NULL,则返回 NULL

语法

sql
ceil(x: expr | columnName)

参数

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

返回值

  • 返回 Float64 类型的数值

示例

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

floor ​

向下取整,如果 x 为 NULL,则返回 NULL

语法

sql
floor(x: expr | columnName)

参数

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

返回值

  • 返回 Float64 类型的数值

示例

sql
> SELECT floor(1.2)

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

round ​

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

语法

sql
round(x: expr | columnName)

参数

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

返回值

  • 返回 Float64 类型的数值

示例

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

sign ​

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

语法

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            │
└───────────────────────────────┘