数学函数概览
DLI所支持的数学函数如数学函数所示。
| 
       函数  | 
     
       命令格式  | 
     
       返回值  | 
     
       功能简介  | 
    
|---|---|---|---|
| 
       abs(DOUBLE a)  | 
     
       DOUBLE或INT  | 
     
       取绝对值。  | 
    |
| 
       acos(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定角度a的反余弦值。  | 
    |
| 
       asin(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定角度a的反正弦值。  | 
    |
| 
       atan(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定角度a的反正切值。  | 
    |
| 
       bin(BIGINT a)  | 
     
       STRING  | 
     
       返回二进制格式。  | 
    |
| 
       bround(DOUBLE a)  | 
     
       DOUBLE  | 
     
       HALF_EVEN模式四舍五入,与传统四舍五入方式的区别在于,对数字5进行操作时,由前一位数字来决定,前一位数字为奇数,增加一位,前一位数字为偶数,舍弃一位。例如:bround(7.5)=8.0,bround(6.5)=6.0  | 
    |
| 
       bround(DOUBLE a, INT d)  | 
     
       DOUBLE  | 
     
       保留小数点后d位,d位之后数字以HALF_EVEN模式四舍五入。与传统四舍五入方式的区别在于,对数字5进行操作时,由前一位数字来决定,前一位数字为奇数,增加一位,前一位数字为偶数,舍弃一位。例如:bround(8.25, 1) = 8.2, bround(8.35, 1) = 8.4。  | 
    |
| 
       cbrt(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回a的立方根。  | 
    |
| 
       ceil(DOUBLE a)  | 
     
       DECIMAL  | 
     
       将参数向上舍入为最接近的整数。例如:ceil(21.2),返回22。  | 
    |
| 
       conv(BIGINT num, INT from_base, INT to_base), conv(STRING num, INT from_base, INT to_base)  | 
     
       STRING  | 
     
       进制转换,将from_base进制下的num转化为to_base进制下面的数。例如:将5从十进制转换为四进制,conv(5,10,4)=11。  | 
    |
| 
       cos(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定角度a的余弦值。  | 
    |
| 
       cot1(DOUBLE a)  | 
     
       DOUBLE或DECIMAL类型  | 
     
       计算number的余切函数,输入为弧度值。  | 
    |
| 
       degrees(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回弧度所对应的角度。  | 
    |
| 
       e()  | 
     
       DOUBLE  | 
     
       返回e的值。  | 
    |
| 
       exp(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回e的a次方。  | 
    |
| 
       factorial(INT a)  | 
     
       BIGINT  | 
     
       返回a的阶乘。  | 
    |
| 
       floor(DOUBLE a)  | 
     
       BIGINT  | 
     
       对给定数据进行向下舍入最接近的整数。例如:floor(21.2),返回21。  | 
    |
| 
       greatest(T v1, T v2, ...)  | 
     
       DOUBLE  | 
     
       返回列表中的最大值。  | 
    |
| 
       hex(BIGINT a) hex(STRING a)  | 
     
       STRING  | 
     
       将整数或字符转换为十六进制格式。  | 
    |
| 
       least(T v1, T v2, ...)  | 
     
       DOUBLE  | 
     
       返回列表中的最小值。  | 
    |
| 
       ln(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定数值的自然对数。  | 
    |
| 
       log(DOUBLE base, DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定底数及指数返回自然对数。  | 
    |
| 
       log10(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定数值的以10为底自然对数。  | 
    |
| 
       log2(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定数值的以2为底自然对数。  | 
    |
| 
       median(colname)  | 
     
       DOUBLE或DECIMAL  | 
     
       计算中位数。  | 
    |
| 
       negative(INT a)  | 
     
       DECIMAL或INT  | 
     
       返回a的相反数,例如negative(2),返回-2。  | 
    |
| 
       percentile  | 
     
       percentile(colname,DOUBLE p)  | 
     
       DOUBLE或ARRAY  | 
     
       计算精确百分位数,适用于小数据量。先对指定列升序排列,然后取精确的第p位百分数。p必须在0和1之间。  | 
    
| 
       percentile_approx (colname,DOUBLE p)  | 
     
       DOUBLE或ARRAY  | 
     
       计算近似百分位数,适用于大数据量。先对指定列升序排列,然后取第p位百分数对应的值。  | 
    |
| 
       pi()  | 
     
       DOUBLE  | 
     
       返回pi的值。  | 
    |
| 
       pmod(INT a, INT b)  | 
     
       DECIMAL或INT  | 
     
       返回a除b的余数的绝对值。  | 
    |
| 
       positive(INT a)  | 
     
       DECIMAL、DOUBLE或INT  | 
     
       返回a的值,例如positive(2),返回2。  | 
    |
| 
       pow(DOUBLE a, DOUBLE p), power(DOUBLE a, DOUBLE p)  | 
     
       DOUBLE  | 
     
       返回a的p次幂。  | 
    |
| 
       radians(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回角度所对应的弧度。  | 
    |
| 
       rand(INT seed)  | 
     
       DOUBLE  | 
     
       返回大于或等于0且小于1的平均分布随机数。如果指定种子seed,则会得到一个稳定的随机数序列。  | 
    |
| 
       round(DOUBLE a)  | 
     
       DOUBLE  | 
     
       四舍五入。  | 
    |
| 
       round(DOUBLE a, INT d)  | 
     
       DOUBLE  | 
     
       小数部分d位之后数字四舍五入,例如round(21.263,2),返回21.26。  | 
    |
| 
       shiftleft(BIGINT a, INT b)  | 
     
       INT  | 
     
       有符号左边移,将a的二进制数按位左移b位。  | 
    |
| 
       shiftright(BIGINT a, INT b)  | 
     
       INT  | 
     
       有符号右移,将a的二进制数按位右移b位。  | 
    |
| 
       shiftrightunsigned(BIGINT a, INT b)  | 
     
       INT  | 
     
       无符号右移,将a的二进制数按位右移b位。  | 
    |
| 
       sign(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回a所对应的正负号,a为正返回1.0,a为负,返回-1.0,否则返回0.0。  | 
    |
| 
       sin(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定角度a的正弦值。  | 
    |
| 
       sqrt(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回数值的平方根。  | 
    |
| 
       tan(DOUBLE a)  | 
     
       DOUBLE  | 
     
       返回给定角度a的正切值。  |