为了方便测试,创建了dual表,该表只有一个字段以及只有一行数据,建表语句如下:
CREATE TABLE dual ( x INT )
函数名称:round(DOUBLE a),返回类型:DOUBLE
返回数字 a 四舍五入后的值
select round(1.5) from dual; -- 结果为 2 select round(1.1) from dual; -- 结果为 1
函数名称:round(DOUBLE a, INT d),返回类型:DOUBLE
返回数字 a 四舍五入到小数点后 d 位的值
select round(1.15, 1) from dual; -- 结果为 1.2 select round(1.12, 1) from dual; -- 结果为 1.1 select round(1.12, 3) from dual; -- 结果为 1.12 select round(1.12, 0) from dual; -- 结果为 1.0 select round(1.12, -1) from dual; -- 结果为 0.0
函数名称:bround(DOUBLE a),返回类型:DOUBLE
返回数字 a 高斯舍入后的值
高斯舍入也称银行家舍入,简单的说就是四舍六入五考虑,五后非空就进一,五后为空看奇偶,五前为偶应舍去,五前为奇要进一
-- 四舍 select bround(1.4) from dual; -- 结果为 1.0 -- 六入 select bround(1.6) from dual; -- 结果为 2.0 -- 五后非空就进一 select bround(1.51) from dual; -- 结果为 2.0 -- 五前为偶应舍去 select bround(2.5) from dual; -- 结果为 2.0 -- 五前为奇要进一 select bround(3.5) from dual; -- 结果为 4.0
函数名称:bround(DOUBLE a, INT d),返回类型:DOUBLE
返回数字 a 高斯舍入到小数点后 d 位的值
-- 四舍 select bround(1.14, 1) from dual; -- 结果为 1.1 -- 六入 select bround(1.16, 1) from dual; -- 结果为 1.2 -- 五后非空就进一 select bround(1.151, 1) from dual; -- 结果为 1.2 -- 五前为偶应舍去 select bround(1.25, 1) from dual; -- 结果为 1.2 -- 五前为奇要进一 select bround(1.35, 1) from dual; -- 结果为 1.4
函数名称:floor(DOUBLE a),返回类型:BIGINT
对数字 a 向下取整
select floor(1.1) from dual; -- 结果为 1 select floor(1.6) from dual; -- 结果为 1 select floor(-1.1) from dual; -- 结果为 -2 select floor(-1.6) from dual; -- 结果为 -2
函数名称:ceil(DOUBLE a), ceiling(DOUBLE a),返回类型:BIGINT
对数字 a 向上取整,ceil同ceiling
select ceil(1.1) from dual; -- 结果为 2 select ceil(1.6) from dual; -- 结果为 2 select floor(-1.1) from dual; -- 结果为 -1 select floor(-1.6) from dual; -- 结果为 -1
函数名称:rand(), rand(INT seed),返回类型:DOUBLE
如果 seed 不指定,则返回0到1之间的随机数,如:
select rand() from dual; -- 结果为 0.9811062452094043
如果 seed 指定了,随机数是确定的,如:
select rand(2) from dual; -- 结果为 0.7311469360199058 select rand(2020) from dual; -- 结果为 0.6188119599189963 select rand(20201231) from dual; -- 结果为 0.9412005456293369
一般使用

这篇博客详细介绍了Hive中的数学函数,包括四舍五入、高斯舍入、取整、随机数生成、指数、对数、三角函数、进制转换等,并给出了相应的函数用法和示例,帮助用户理解并运用这些函数。
最低0.47元/天 解锁文章
651

被折叠的 条评论
为什么被折叠?



