1.4.2、数学函数
注意:当传入值为NULL的时候,返回值大多数也是NULL
1.4.2.1、abs
作用:返回绝对值
select abs(-1),abs(1);
1.4.2.2、acos-->从Hive0.13.0
作用:如果 -1<=a<=1 或 NULL,则返回 a 的反余弦值。
select acos(0.1),acos(-1),acos(1),acos(-0.6)
1.4.2.3、asin-->从Hive0.13.0
作用:如果 -1<=a<=1 或 NULL,则返回 a 的反正弦。
select asin(0.1),asin(-1),asin(1),asin(-0.6),asin(null);
1.4.2.4、atan-->从Hive0.13.0
select atan(1.1),atan(0.543535)
1.4.2.5、bin
select bin(234234324234);
1.4.2.6、bround-->Hive1.3.0
select bround(2.4),bround(2.5),bround(3.5),bround(3.6554),bround(8.324,2),bround(3.234,1);
1.4.2.7、cbrt-->Hive1.2.0
select cbrt(3.34543);
1.4.2.8、ceil
select ceil(2.234),ceil(2.65),ceil(3.343);
1.4.2.9、conv
select conv(234234,10,2),conv(234234,10,16);
1.4.2.10、cos-->Hive0.13.0
select cos(23.23),cos(60),cos(90),cos(180);
1.4.2.11、degress-->Hive0.13.0
select degrees(23.23432),degrees(23.66545);
1.4.2.12、e
select e();
1.4.2.13、exp-->Hive0.13.0
select exp(23.234),exp(23.354),exp(23.65),exp(2);
1.4.2.14、factorial-->Hive1.2.0
1.4.2.15、floor
select floor(2.34),floor(2.756),floor(3.54);
1.4.2.16、greatest-->Hive1.1.0
select greatest(1,2,34,45,234,342,42324);
1.4.2.17、hex
select hex(23),hex(2);
1.4.2.18、least
select least(1,2,34,45,234,342,42324);
1.4.2.19、ln-->Hive0.13.0
select ln(10),ln(20),ln(0),ln(1);
1.4.2.20、log2-->Hive0.13.0
select log2(4),log2(6),log2(8);
1.4.2.21、log10-->Hive0.13.0
select log10(40),log10(60),log10(80),log10(100);
1.4.2.22、negative
select negative(1),negative(20.234),negative(-20);
1.4.2.23、pi
select pi();
1.4.2.24、pmod
select pmod(10,2),pmod(10,3),pmod(10,4);
1.4.2.25、positive
select positive(20),positive(10.234353);
1.4.2.26、pow
select pow(5,2),pow(4,2);
1.4.2.27、radians-->Hive0.13.0
select radians(4),radians(180),radians(360);
1.4.2.28、rand
-- 可以指定种子序列,这样可以保障每次的结果都一致
select rand(),rand(5),rand(10);
1.4.2.29、round
select round(3),round(3.2),round(3.43);
1.4.2.30、shiftleft-->Hive1.2.0
1.4.2.31、shiftright-->Hive1.2.0
1.4.2.32、shiftrightunsigned-->Hive1.2.0
1.4.2.33、sign-->Hive0.13.0
select sign(23.23),sign(23),sign(-10);
1.4.2.34、sin-->Hive0.13.0
select sin(60),sin(90),sin(180),sin(270),sin(360)
1.4.2.35、sqrt-->Hive0.13.0
select sqrt(3),sqrt(4),sqrt(10);
1.4.2.36、tan-->Hive0.13.0
select tan(30),tan(90),tan(180);
1.4.2.37、unhex-->Hive0.12.0
select hex(57),unhex(57);
1.4.2.38、width_bucket-->Hive3.0.0
支持版本+ | 返回值类型 | 函数名称 | 功能描述 |
DOUBLE | abs(DOUBLE a) | 返回绝对值 | |
Hive0.13.0 | DOUBLE | acos(DOUBLE a), acos(DECIMAL a) | 如果 -1<=a<=1 或 NULL,则返回 a 的反余弦值。 |
Hive0.13.0 | DOUBLE | asin(DOUBLE a), asin(DECIMAL a) | 如果 -1<=a<=1 或 NULL,则返回 a 的反正弦。 |
Hive0.13.0 | DOUBLE | atan(DOUBLE a), atan(DECIMAL a) | 返回a的正切值。 |
STRING | bin(BIGINT a) | 返回二进制格式的数字 | |
Hive1.3.0 | DOUBLE | bround(DOUBLE a) | 使用HALF_EVEN四舍五入模式返回a的BIGINT值。例如:bround(2.5) = 2, bround(3.5) = 4. |
Hive1.3.0 | DOUBLE | bround(DOUBLE a, INT d) | 使用HALF_EVEN四舍五入模式返回一个四舍五入到小数点后d位的数值。例如:bround(8.25, 1) = 8.2,bround(8.35, 1) = 8.4 |
Hive1.2.0 | DOUBLE | cbrt(DOUBLE a) | 返回双精度值的立方根 |
BIGINT | ceil(DOUBLE a), ceiling(DOUBLE a) | 返回等于或大于 a 的最小 BIGINT 值 | |
STRING | conv(BIGINT num, INT from_base, INT to_base), conv(STRING num, INT from_base, INT to_base) | 将一个数字从一个给定的基数转换为另一个基数 | |
Hive0.13.0 | DOUBLE | cos(DOUBLE a), cos(DECIMAL a) | 返回 a 的余弦(a 以弧度为单位) |
Hive0.13.0 | DOUBLE | degrees(DOUBLE a), degrees(DECIMAL a) | 将 a 的值从弧度转换为度数 |
DOUBLE | e() | 返回 e 的值。 | |
Hive0.13.0 | DOUBLE | exp(DOUBLE a), exp(DECIMAL a) | 返回 ea,其中 e 是自然对数的底数 |
Hive1.2.0 | BIGINT | factorial(INT a) | 返回a的阶乘 |
BIGINT | floor(DOUBLE a) | 返回等于或小于 a 的最大 BIGINT 值。 | |
Hive1.1.0 | T | greatest(T v1, T v2, ...) | 返回值列表的最大值 |
STRING | hex(BIGINT a) hex(STRING a) hex(BINARY a) | 如果参数是 INT 或二进制,则十六进制将数字作为十六进制格式的 STRING 返回。否则,如果数字是 STRING,它会将每个字符转换为其十六进制表示并返回结果 STRING。 | |
T | least(T v1, T v2, ...) | 返回值列表的最小值 | |
Hive0.13.0 | DOUBLE | ln(DOUBLE a), ln(DECIMAL a) | 返回参数 a 的自然对数 |
Hive0.13.0 | DOUBLE | log2(DOUBLE a), log2(DECIMAL a) | 返回参数 a 的以 2 为底的对数 |
Hive0.13.0 | DOUBLE | log10(DOUBLE a), log10(DECIMAL a) | 返回参数 a 的以 10 为底的对数 |
DOUBLE | log(DOUBLE base, DOUBLE a) log(DECIMAL base, DECIMAL a) | 返回参数 a 的底对数 | |
INT or DOUBLE | negative(INT a), negative(DOUBLE a) | 返回-a。 | |
DOUBLE | pi() | 返回π的值 | |
INT or DOUBLE | pmod(INT a, INT b), pmod(DOUBLE a, DOUBLE b) | 返回 a mod b 的正值 | |
INT or DOUBLE | positive(INT a), positive(DOUBLE a) | 返回a | |
DOUBLE | pow(DOUBLE a, DOUBLE p), power(DOUBLE a, DOUBLE p) | 返回 ap 它返回 a值的 p 次幂 | |
Hive0.13.0 | DOUBLE | radians(DOUBLE a), radians(DOUBLE a) | 将 a 的值从度数转换为弧度 |
DOUBLE | rand(), rand(INT seed) | 返回从 0 到 1 均匀分布的随机数(从行到行变化)。指定种子将确保生成的随机数序列是确定性的 | |
DOUBLE | round(DOUBLE a) | 返回a的四舍五入的BIGINT值 | |
DOUBLE | round(DOUBLE a, INT d) | 返回四舍五入到 d 位小数 | |
Hive1.2.0 | INT BIGINT | shiftleft(TINYINT|SMALLINT|INT a, INT b) shiftleft(BIGINT a, INT b) | 位数左移(从Hive 1.2.0开始)。将a b的位置向左移动。对于tinyint、smallint和int a,返回int;对于bigint a,返回bigint。 |
Hive1.2.0 | INT BIGINT | shiftright(TINYINT|SMALLINT|INT a, INT b) shiftright(BIGINT a, INT b) | 位数右移(从Hive 1.2.0开始)。将a b的位置向右移动。对于tinyint、smallint和int a,返回int;对于bigint a,返回bigint |
Hive1.2.0 | INT BIGINT | shiftrightunsigned(TINYINT|SMALLINT|INT a, INT b), shiftrightunsigned(BIGINT a, INT b) | Bitwise无符号右移(从Hive 1.2.0开始)。将a b的位置向右移动。对于tinyint、smallint和int a,返回int;对于bigint a,返回bigint。 |
Hive0.13.0 | DOUBLE or INT | sign(DOUBLE a), sign(DECIMAL a) | 将 a 的符号返回为“1.0”(如果 a 为正)或“-1.0”(如果 a 为负),否则返回“0.0”。十进制版本返回 INT 而不是 DOUBLE |
Hive0.13.0 | DOUBLE | sin(DOUBLE a), sin(DECIMAL a) | 返回 a 的正弦值(a 以弧度为单位 |
Hive0.13.0 | DOUBLE | sqrt(DOUBLE a), sqrt(DECIMAL a) | 返回 a 的平方根 |
Hive0.13.0 | DOUBLE | tan(DOUBLE a), tan(DECIMAL a) | 返回a的正切值(a的单位是弧度) |
Hive0.12.0 | BINARY | unhex(STRING a) | 十六进制的倒数。将每对字符解释为一个十六进制数并转换为该数的字节表示 |
Hive3.0.0 | INT | width_bucket(NUMERIC expr, NUMERIC min_value, NUMERIC max_value, INT num_buckets) | 通过将 expr 映射到第 i 个相同大小的存储桶,返回 0 到 num_buckets+1 之间的整数。通过将 [min_value, max_value] 分成大小相等的区域来制作桶。如果expr < min_value,返回1,如果expr > max_value 返回num_buckets+1 |