联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >
10.4.6 数学函数
更新时间:5/16/2024, 9:54:44 AM

简单求值
abs
函数语法 返回类型 描述

abs(a)

DOUBLE

返回 a 的绝对值。

参数说明

  • a:任意做绝对值运算的实数,支持 DOUBLE 类型。

注意事项

  • a 不支持输入 NULL 或空串。

使用示例

SELECT abs(-1314) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 1314    |
+---------+
复制
ceil/ceiling
函数语法 返回类型 描述

ceil(double a) 或 ceiling(double a)

BIGINT

返回不小于 a 的最小整数。

参数说明

  • a:任意实数。

注意事项

  • 当 a 为 NULL 时,返回 NULL。

使用示例

SELECT ceil(2.01) AS result_ceil, ceiling(2.01) AS result_ceiling FROM system.dual LIMIT 1;
复制

返回示例:

+--------------+-----------------+
| result_ceil  | result_ceiling  |
+--------------+-----------------+
| 3            | 3               |
+--------------+-----------------+
复制
div
函数语法 返回类型 描述

A div B

Integer

返回整数除法运算的商,舍去小数部分,只保留整数部分。

参数说明

  • A:被除数。

  • B:除数。

注意事项

  • 任意参数 A 或 B 为 NULL 时,结果返回 NULL。

  • 参数 A 或 B 目前只支持输入整数。

使用示例:

计算 10 除以 3 的商。

SELECT 10 div 3  AS result;
复制

返回示例:

+---------+
| result  |
+---------+
| 3       |
+---------+
复制
e
函数语法 返回类型 描述

e()

DOUBLE

返回自然常数 e,保留到小数点后 15 位。

使用示例

SELECT e() AS result FROM system.dual;
复制

返回示例:

+--------------------+
|       result       |
+--------------------+
| 2.718281828459045  |
+--------------------+
复制
factorial
函数语法 返回类型 描述

factorial(n)

BIGINT

返回 n 的阶乘。如果 n 的值不属于 [0,20],返回 NULL。

参数说明

  • n:进行阶层计算的数。

注意事项

  • 如果 n 为小数,则返回整数位的阶乘,如 factorial(12.9)=factorial(12)。

  • 当 n 为 NULL 或空串时,返回 NULL。

使用示例

SELECT factorial(20) AS result FROM system.dual;
复制

返回示例:

+----------------------+
|        result        |
+----------------------+
| 2432902008176640000  |
+----------------------+
复制
floor
函数语法 返回类型 描述

floor(double a)

BIGINT

返回不大于 a 的最大整数。

参数说明

  • a:任意实数。

注意事项

  • 当 a 为 NULL 时,返回 NULL。

使用示例

SELECT floor(1.314) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 1       |
+---------+
复制
least
函数语法 返回类型 描述

least (<arg>, <arg> [,<arg>, …​])

基础数据类型

需要至少两个标量参数,返回相对最小的参数。

参数说明

  • arg:进行比较的参数,支持基础数据类型。

注意事项

  • 当参数 arg 都为 NULL,则返回 NULL。

  • 当参数 arg 都为空串,则返回空。

  • 当参数同时包含 NULL 及空串,则返回 NULL。

使用示例

SELECT least(2, 3, 1) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 1       |
+---------+
复制
max_scalar
函数语法 返回类型 描述

max_scalar(<scalar>, <scalar> [, <scalar>, …​])

数值类型

需要至少两个标量参数,返回所有参数中最大的。

参数说明

  • scalar:任意实数,且所有参数的数据类型必须一致。

注意事项

  • 当参数 scalar 均为 NULL 时,返回 NULL,均为空串时返回空。

  • 当参数为位数不同的小数时,保留参数中的最小有效位数,然后四舍五入之后再进行比较。

    SELECT max_scalar(-1.00,1.32,-2.453) ;
    
    -- 返回结果:
    +------+
    | _c0  |
    +------+
    | 1    |
    +------+
    复制

使用示例

SELECT max_scalar(1, 4, 8) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 8       |
+---------+
复制
min_scalar
函数语法 返回类型 描述

min_scalar(<scalar>, <scalar> [, <scalar>, …​])

数值类型

需要至少两个标量参数。返回所有参数中最小的。

参数说明

  • scalar:任意实数,且所有参数的数据类型必须一致。

注意事项

  • 当参数 scalar 均为 NULL 时,返回 NULL;均为空串时返回空。

  • 当参数为位数不同的小数时,保留参数中的最小有效位数,然后四舍五入之后再进行比较。

    SELECT min_scalar(-1.00,1.32,-2.453) ;
    
    -- 返回结果:
    +------+
    | _c0  |
    +------+
    | -2   |
    +------+
    复制

使用示例

SELECT min_scalar(1,4,8) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 1       |
+---------+
复制
negative
函数语法 返回类型 描述

negative(a)

NUMERIC

返回 -a。

参数说明

  • a:任意实数。

注意事项

  • 若 a 为 NULL 或空串,则返回 NULL。

使用示例

SELECT negative(1) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| -1      |
+---------+
复制
pi
函数语法 返回类型 描述

pi()

DOUBLE

返回 pi 的值,保留到小数点后 15 位。

使用示例

SELECT pi() AS result FROM system.dual;
复制

返回示例:

+--------------------+
|       result       |
+--------------------+
| 3.141592653589793  |
+--------------------+
复制
pmod
函数语法 返回类型 描述

pmod(int a, int b)

NUMERIC

返回正的取模,公式:(a%b+b)%b

参数说明

  • a:任意整数。

  • b:任意整数。

注意事项

  • 任意参数为 NULL 或空串,则返回 NULL。

使用示例

SELECT pmod(-4,3) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 2       |
+---------+
复制
positive
函数语法 返回类型 描述

positive(a)

NUMERIC

直接返回 a。

参数说明

  • a:任意实数。

注意事项

  • 若 a 为 NULL 或空串,则返回 NULL。

使用示例

SELECT positive(-1) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| -1      |
+---------+
复制
prime
函数语法 返回类型 描述

prime(a)

INT

返回与参数 a 最相邻的质数。若存在两个最相邻质数,返回较小的相邻质数

参数说明

  • a:任意正整数

注意事项

  • 若参数 a 为质数,则返回自身。

  • 若参数 a 为 0 或负整数,则返回 NULL。

  • 参数 a 不支持 NULL 或空串

使用示例

与 4 最相邻质数为 3 和 5,返回较小的一个:

SELECT prime(4) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 3       |
+---------+
复制
rand
函数语法 返回类型 描述

rand([seed])

DOUBLE

生成 0-1 之间的随机数。

参数说明

  • seed:可选参数,支持任何整数。

    • 未指定 seed 时随机返回 0-1 的随机数。

    • 指定 seed 时,相同的 seed 得到的随机数结果是一样的。例如每次rand(100)的值都是一样的。

注意事项

  • 当 seed 为 Boolean 类型时,会自动转换 true 为 1,false 为 0。

  • seed 不支持输入 NULL 或空串。

使用示例

SELECT rand(100) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 0.7220096548596434  |
+---------------------+
复制
round
函数语法 返回类型 描述

round(a[, d])

BIGINT

对 a 四舍五入,并返回小数点后 d 位的结果。

参数说明

  • a:被四舍五入运算的数据。

  • d:可选参数,指定四舍五入保留小数点后第 d 位。未指定d时,默认为 0。

注意事项

  • 任意一个参数为 NULL,则返回 NULL。

  • 如果 d 大于 a 的小数位数,则返回 a。

使用示例

SELECT round(1.4523,3) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 1.452   |
+---------+
复制
shiftleft
函数语法 返回类型 描述

shiftleft(n, k)

数值类型

返回整数 n 左移 k 位后的数值。当 n 为 TINYINT、SMALLINT 和 INT 类型时,返回 INT 类型,当 n 为 BIGINT 时,则返回 BIGINT。

参数说明

  • n:支持所有的整数值类型,如 TINYINT、SMALLINT、INT 和 BIGINT。

  • k:只支持 INT 型。

注意事项

  • 当任意参数 n 或 k 为 NULL 时,结果返回 NULL。

  • 任意参数都不支持为空串。

使用示例

SELECT shiftleft(8,1) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| 16      |
+---------+
复制
shiftright
函数语法 返回类型 描述

shiftright(n, k)

数值类型

返回整数n右移k位后的数值。当 n 为 TINYINT、SMALLINT 和 INT 类型时,返回 INT 类型,当 n 为 BIGINT 时,则返回 BIGINT。

参数说明

  • n:支持所有的整数值类型,如 TINYINT、SMALLINT、INT 和 BIGINT。

  • k:只支持 INT 型。

注意事项

  • 当任意参数 n 或 k 为 NULL 时,结果返回 NULL。

  • 任意参数都不支持为空串。

使用示例

SELECT shiftright(8,1) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| 4       |
+---------+
复制
shiftrightunsigned
函数语法 返回类型 描述

shiftrightunsigned(n, int k)

数值类型

返回整数 n 无符号右移 k 位后的数值。当 n 为 TINYINT、SMALLINT 和 INT 类型时,返回 INT 类型,当 n 为 BIGINT 时,则返回 BIGINT。

参数说明

  • n:支持所有的整数值类型,如 TINYINT、SMALLINT、INT 和 BIGINT。

  • k:右移的位数,只支持 INT 型。

注意事项

  • 当任意参数 n 或 k 为 NULL 时,结果返回 NULL。

  • 任意参数都不支持为空串。

使用示例

SELECT shiftrightunsigned(-8,1) AS result FROM system.dual;
复制

返回示例:

+-------------+
|   result    |
+-------------+
| 2147483644  |
+-------------+
复制
sign
函数语法 返回类型 描述

sign(x)

DOUBLE

判断正负,x 为正则返回 1,为负则返回 -1,为 0 则返回 0。

参数说明

  • x:任意实数

注意事项

  • 若 x 为 NULL 或空串,则返回 NULL。

使用示例

SELECT sign(-10) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| -1      |
+---------+
复制
trunc
函数语法 返回类型 描述

trunc (number, precision)

数值类型

需要两个参数:一个数字 number,和精度 precision(小数点后保留的位数)。该函数将 number 截到指定的 precision。

参数说明

  • number:被截取的数据。

  • precision:精度,小数点保留的位数。

注意事项

  • 当精度 precision 为小数时,按照整数位计算,如 trunc(123.456, 2.9) 表示保留 2 位小数。

  • 参数只支持数值类型,不支持 NULL 或空串。

使用示例

SELECT trunc(123.456, 1) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 123.4   |
+---------+
复制
幂/方根/对数
cbrt
函数语法 返回类型 描述

cbrt(a)

DOUBLE

计算参数a的实立方根。

参数说明

  • a:立方根计算的底数,支持任意数值类型。

注意事项

  • 当参数 a 为 NULL 时,返回 NULL。

使用示例

SELECT cbrt(27) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| 3.0     |
+---------+
复制
exp
函数语法 返回类型 描述

exp(n)

DOUBLE

返回 e 的 n 次方

参数说明

  • n:自然数的次方数,支持 DOUBLE 型。

注意事项

  • 当参数 n 为 NULL 或空串时,返回 NULL。

使用示例

SELECT exp(1) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+--------------------+
|       result       |
+--------------------+
| 2.718281828459045  |
+--------------------+
复制
ln
函数语法 返回类型 描述

ln(a)

DOUBLE

返回指定值的自然对数

参数说明

  • a:进行对数计算的值,支持 DOUBLE 型。

注意事项

  • 若参数 a 为 NULL 或空串,则返回 NULL。

使用示例

SELECT ln(exp(1.314)) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| 1.314   |
+---------+
复制
log10
函数语法 返回类型 描述

log10(a)

DOUBLE

返回a以10为底的对数

参数说明

  • a:进行对数计算的值,支持 DOUBLE 型。

注意事项

  • 若参数 a 为 NULL 或空串,则返回 NULL。

使用示例

SELECT log10(100) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 2.0     |
+---------+
复制
log2
函数语法 返回类型 描述

log2(a)

DOUBLE

返回a以2为底的对数

参数说明

  • a:进行对数计算的值,支持 DOUBLE 型。

注意事项

  • 若参数 a 为 NULL 或空串,则返回 NULL。

使用示例

SELECT log2(4) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 2.0     |
+---------+
复制
log
函数语法 返回类型 描述

log(base, a)

DOUBLE

返回a以base为底的对数

参数说明

  • a:进行对数计算的值,支持 DOUBLE 型。

  • base:对数计算中作为底的参数,支持 DOUBLE 型。

注意事项

  • 若任意参数 a 或 base 为 NULL 或空串,则返回 NULL。

使用示例

SELECT log(10,100) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 2.0     |
+---------+
复制
pow/power
函数语法 返回类型 描述

pow(a, p 或 power(a,p)

DOUBLE

返回a的p次幂

参数说明

  • a:进行幂次方计算的底数,支持 DOUBLE 型。

  • p:幂次方计算的次方数,支持 DOUBLE 型。

注意事项

  • 任意参数 a 或 p 为 NULL 或空串时,返回 NULL。

使用示例

SELECT pow(10,2) AS result_pow, power(10,2) AS result_power FROM system.dual LIMIT 1;
复制

返回示例:

+-------------+---------------+
| result_pow  | result_power  |
+-------------+---------------+
| 100.0       | 100.0         |
+-------------+---------------+
复制
sqrt
函数语法 返回类型 描述

sqrt(a)

DOUBLE

返回a的平方根

参数说明

  • a:平方根计算的底数,支持 DOUBLE 型。

注意事项

  • 当 a 为 NULL 或空串时,返回 NULL。

使用示例

SELECT sqrt(100) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| 10.0    |
+---------+
复制
进制/度量转换
bin
函数语法 返回类型 描述

bin(a)

STRING

返回二进制格式。

参数说明

  • a:进行二进制转换的数,支持 BIGINT 类型。

注意事项

  • 当参数 a 为 NULL 时,返回 NULL。

使用示例

SELECT bin(10) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 1010    |
+---------+
复制
conv
函数语法 返回类型 描述

conv(num, from_base, to_base)

STRING

度量体系转化,将指定数值num,由原来的度量体系 from_base 转换为指定的度量体系 to_base 。

参数说明

  • num:需要进行度量转换的参数,支持 BIGINT 和 STRING 类型。

  • from_base:初始的度量体系,支持 INT 型。

  • to_base:目标转换度量体现,支持 INT 型

注意事项

  • 任一参数为 NULL 或空串,则返回结果为 NULL。

  • num 可以为 int,也可以是数字字符串。

  • 度量体系的取值范围为 2-36。

  • num 没有符号,默认为无符号数,如果 num 带有“-”号,则为负数。

使用示例

SELECT conv(100, 2, 10) AS result FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| 4       |
+---------+
复制
degrees
函数语法 返回类型 描述

degrees(rad)

DOUBLE

把弧度制的rad转化为角度。

参数说明

  • rad:需要进行转换的弧度制参数,支持 DOUBLE 型。

注意事项

  • 当参数 rad 为 NULL 或空串时,返回 NULL。

使用示例

SELECT degrees(pi()) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| 180.0   |
+---------+
复制
hex
函数语法 返回类型 描述

hex(a)

STRING

将一个字符串或数字转换为十六进制格式的字符串

参数说明

  • a:进行十六进制转换的参数,支持 BIGINT 或 STRING 类型。

注意事项

  • 如果参数为 BIGINT 或者 BINARY,函数将参数的十六进制以字符串形式输出。

  • 如果参数为字符串,函数按顺序将各个字符的十六进制 ascii 码以字符串形式输出。

使用示例

SELECT hex(16) AS result_bigint, hex('16') AS result_string FROM system.dual LIMIT 1 ;
复制

返回示例:

+----------------+----------------+
| result_bigint  | result_string  |
+----------------+----------------+
| 10             | 3136           |
+----------------+----------------+
复制
radians
函数语法 返回类型 描述

radians(ang)

DOUBLE

把角度制的ang转化为弧度。

参数说明

  • ang:需要传换为弧度制的角度制参数,支持 DOUBLE 型。

注意事项

  • 当参数 ang 为 NULL 或空串时,返回 NULL。

使用示例

SELECT radians(180) AS result FROM system.dual;
复制

返回示例:

+--------------------+
|       result       |
+--------------------+
| 3.141592653589793  |
+--------------------+
复制
unhex
函数语法 返回类型 描述

unhex(a)

STRING

将 ascii 码十六进制的字符串转化为二进制格式。

参数说明

  • a:ascii 码十六进制格式的字符串。

注意事项

  • 参数 a 只接受字符格式,即使输入数值类型也转化为字符格式再转化为二进制。

  • 如果参数 a 为任何非十六进制的数字或空串时,则返回空。

  • 若参数 a 为 NULL,则返回 NULL。

使用示例

SELECT unhex(3136) AS result FROM system.dual LIMIT 1 ;
复制

返回示例:

+---------+
| result  |
+---------+
| 16      |
+---------+
复制
三角函数
sin
函数语法 返回类型 描述

sin(a)

DOUBLE

返回 a 的正弦值,其中 a 是弧度制。

参数说明

  • a:进行正弦计算的弧度制参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例

SELECT sin(pi()/2) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| 1.0     |
+---------+
复制
sinh
函数语法 返回类型 描述

sinh(a)

DOUBLE

计算并返回指定数值的双曲正弦值,以弧度为单位。

参数说明

  • a:进行双曲正弦计算的弧度制参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例:

计算 1.5 的双曲正弦值。

SELECT sinh(1.5) AS result;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 2.1292794550948173  |
+---------------------+
复制
asin
函数语法 返回类型 描述

asin(a)

DOUBLE

返回 a 的反正弦值,a 必须大于 -1 小于 1,否则返回 NaN。

参数说明

  • a:进行反正弦计算的弧度制参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例

SELECT asin(1) AS result FROM system.dual;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 1.5707963267948966  |
+---------------------+
复制
asinh
函数语法 返回类型 描述

asinh(a)

DOUBLE

计算并返回指定数值的反双曲正弦值,以弧度为单位。

参数说明

double a:要计算反双曲正弦值的数,支持 DOUBLE 类型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

  • 如果希望以度为单位表示反正切值,您可以将结果乘以 180/PI( ),或使用 degrees 函数

使用示例:

计算数值 2 的反双曲正弦值。

SELECT asinh(2) AS result;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 1.4436354751788103  |
+---------------------+
复制
cos
函数语法 返回类型 描述

cos(a)

DOUBLE

返回a的余弦值,其中a是弧度制。

参数说明

  • a:进行余弦计算的弧度制参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例

SELECT cos(pi()) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| -1.0    |
+---------+
复制
cosh
函数语法 返回类型 描述

cosh(a)

DOUBLE

计算并返回指定数值的双曲余弦值,以弧度为单位。

参数说明

  • a:要计算双曲余弦值的参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例:

计算输入值为 1.5 的双曲余弦值。

SELECT cosh(1.5) AS result;
复制

返回示例:

+--------------------+
|       result       |
+--------------------+
| 2.352409615243247  |
+--------------------+
复制
acosh
函数语法 返回类型 描述

acosh(a)

DOUBLE

计算并返回指定数值的反双曲余弦值,以弧度为单位。

参数说明

  • a:要计算反双曲余弦值的参数,必须大于等于 1,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例:

计算 3 的反双曲余弦值。

SELECT acosh(3) AS result;
复制

返回示例:

+--------------------+
|       result       |
+--------------------+
| 1.762747174039086  |
+--------------------+
复制
acos
函数语法 返回类型 描述

acos(a)

DOUBLE

返回a的反余弦值,其中 a 是弧度制。a 必须大于 -1 小于 1,否则返回 NaN。

参数说明

  • a:要计算反余弦值的参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例

SELECT acos(1) AS result FROM system.dual;
复制

返回示例:

+---------+
| result  |
+---------+
| 0.0     |
+---------+
复制
tan
函数语法 返回类型 描述

tan(a)

DOUBLE

返回a的正切值,其中a是弧度制。

参数说明

  • a:要计算正值的参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例

SELECT tan(pi()/4) AS result FROM system.dual;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 0.9999999999999999  |
+---------------------+
复制
tanh
函数语法 返回类型 描述

tanh(a)

DOUBLE

计算并返回指定数值的双曲正切值,以弧度为单位。

参数说明

  • a:要计算双曲正切值的参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例:

在 SQL 中计算 0.5 的双曲正切值。

SELECT tanh(0.5) AS result;
复制

返回示例:

+----------------------+
|        result        |
+----------------------+
| 0.46211715726000974  |
+----------------------+
复制
atan
函数语法 返回类型 描述

atan(a)

DOUBLE

返回a的余切值,其中a是弧度制。

参数说明

  • a:要计算余切值的参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例

SELECT atan(1) AS result FROM system.dual;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 0.7853981633974483  |
+---------------------+
复制
atan2
函数语法 返回类型 描述

atan2(x, y)

DOUBLE

计算 X 轴及 Y 轴坐标值的反正切值,以弧度为单位。

参数说明

  • x:点的横坐标。

  • y:点的纵坐标。

注意事项

  • 任意参数为 NULL,则返回 NULL。

  • 如果希望以度为单位表示反正切值,您可以将结果乘以 180/PI( ),或使用 degrees 函数

  • 结果为正表示从 X 轴逆时针旋转的角度,结果为负表示从 X 轴顺时针旋转的角度。

使用示例:

计算点 (1, 1) 相对于原点 (0, 0) 的反正切值。

 SELECT atan2(-1, -1) AS result;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| -2.356194490192345  |
+---------------------+
复制
atanh
函数语法 返回类型 描述

atanh(a)

DOUBLE

返回指定指的反双曲正切值,以弧度为单位。a 必须大于 -1 小于 1,否则返回 NaN。

参数说明

  • a:要计算反双曲正切值的参数,支持 DOUBLE 型。

注意事项

  • 当参数 a 为 NULL 或空串时,返回 NULL。

使用示例:

计算 0.5 的反双曲正切值。

SELECT atanh(0.5) AS result;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 0.5493061443340549  |
+---------------------+
复制
线性回归函数

Inceptor 提供以下线性回归函数(Linear Regression Functions),适用于使用最小二乘法对两列(自变量与因变量)的依赖关系进行回归分析的场景。

本小节用例使用表 regrTable 如下:

regr_id price1 price2

1

10

5

2

20

10

3

30

15

4

40

10

5

50

20

6

60

30

7

70

15

8

80

20

9

90

60

10

100

40

11

110

50

12

120

100

regr_intercept
函数语法 返回类型 描述

regr_intercept(y, x)

DOUBLE

返回拟合所给两列数据的回归线的 y 截距。

参数说明

  • yx:计算两列数据回归线 y 截距时所涉及的列名称,必须是数值类型。

注意事项

  • 两列数据的回归线的 y 截距计算公式为:

    (SUM(y)*SUM(x*x)-SUM(x)*SUM(x*y))/(N*SUM(x*x)-SUM(x)*SUM(x))

    • N:值都不为空的数据对的数量。

    • 如果N*SUM(x*x)=SUM(x)*SUM(x),将会返回 NULL。

使用示例

SELECT regr_intercept(price2, price1) AS result FROM regrtable;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 31.062079281974576  |
+---------------------+
复制
regr_r2
函数语法 返回类型 描述

regr_r2(y, x)

DOUBLE

返回拟合所给两列数据的回归线的决定系数。

参数说明

  • yx:计算两列数据回归线的决定系数时所涉及的列名称,必须是数值类型。

注意事项

  • 两列数据回归线的决定系数计算公式为:

    POWER(N*SUM(x*y)-SUM(x) * SUM(y), 2) / [(N*SUM(x2)-SUM(x)2)*(N*SUM(y2)-SUM(y)2)]

    • N:值都不为空的数据对的数量。

    • 如果 N*SUM(x*x)=SUM(x)*SUM(x),将会返回 null;

    • 如果 N*SUM(y*y)=SUM(y)*SUM(y),将返回 1。

使用示例

SELECT regr_r2(price2, price1) AS result FROM regrtable;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 0.6892008515045164  |
+---------------------+
复制
regr_slope
函数语法 返回类型 描述

regr_slope(y,x)

DOUBLE

返回拟合所给两列数据的回归线斜率。

参数说明

  • yx:计算两列数据回归线斜率时所涉及的列名称,必须是数值类型。

注意事项

  • 回归线斜率计算公式为:

    (N*SUM(x*y)-SUM(x)*SUM(y))/(N*SUM(x*x)-SUM(x)*SUM(x))

    • N:表示值都不为空的数据对的数量。

    • 当 N*SUM(x*x)=SUM(x)*SUM(x) 时,将会返回 NULL。

使用示例

SELECT regr_slope(price2,price1) AS result FROM regrtable;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 1.0860134629768137  |
+---------------------+
复制
regr_sxx
函数语法 返回类型 描述

regr_sxx(y, x)

DOUBLE

返回自变量 x 的平方和。计算公式为: (SUM(X2)-SUM(X)2)/N

参数说明

  • yx:计算自变量 x 列数据平方和时所涉及的列名称,必须是数值类型。

使用示例

SELECT regr_sxx(price2, price1) AS result FROM regrtable;
复制

返回示例:

+---------------------+
|       result        |
+---------------------+
| 14299.999999999998  |
+---------------------+
复制
regr_syy
函数语法 返回类型 描述

regr_syy(y, x)

DOUBLE

返回因变量 y 的平方和。计算公式为:(SUM(y2)-SUM(y)2)/N

参数说明

  • yx:计算因变量 y 列数据平方和时所涉及的列名称,必须是数值类型。

使用示例

SELECT regr_syy(price2, price1) AS result FROM regrtable;
复制

返回示例:

+----------+
|  result  |
+----------+
| 8356.25  |
+----------+
复制
regr_sxy
函数语法 返回类型 描述

regr_sxy(y, x)

DOUBLE

返回自变量和因变量的乘方积。计算公式为:(SUM(x*y)-SUM(x)*SUM(y))/N,若 N=0,则返回 NULL。

参数说明

  • yx:计算自变量 x 列数据和因变量 y 列数据的乘方积时所涉及的列名称,必须是数值类型。

使用示例

SELECT regr_sxy(price2, price1) AS result FROM regrtable;
复制

返回示例:

+---------+
| result  |
+---------+
| 9075.0  |
+---------+
复制
regr_avgx
函数语法 返回类型 描述

regr_avgx(y, x)

DOUBLE

返回自变量 x 的平均值。计算公式为:SUM(x)/N。

参数说明

  • yx:计算自变量 x 列数据的平均值时所涉及的列名称,必须是数值类型。

使用示例

SELECT regr_avgx(price2, price1) as result FROM regrtable;
复制

返回示例:

+---------+
| result  |
+---------+
| 65.0    |
+---------+
复制
regr_avgy
函数语法 返回类型 描述

regr_avgy(y, x)

DOUBLE

返回因变量 y 的平均值。计算公式为:SUM(y)/N

参数说明

  • yx:计算因变量 y 列数据的平均值时所涉及的列名称,必须是数值类型。

使用示例

SELECT regr_avgy(price2, price1) as result FROM regrtable;
复制

返回示例:

+---------+
| result  |
+---------+
| 31.25   |
+---------+
复制
regr_count
函数语法 返回类型 描述

regr_count(y, x)

BIGINT

返回两列都不为 NULL 的输入行数

参数说明

  • yx:计算两列都不为 NULL 的行数时所涉及的列名称,必须是数值类型。

使用示例

SELECT regr_count(price2, price1) as result FROM regrtable;
复制

返回示例:

+---------+
| result  |
+---------+
| 12      |
+---------+
复制