hive函数二

190 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情

继续上一篇文章中的hive函数介绍,本文讲到的数值计算在hive sql设计中也是非常常见的,经常用到的就有比如rand随机数函数,ceil向上取整函数,floor向下取整函数等等。

数值计算

1、round 近似函数 作用:取到近似值

常见使用方法:round(double a) 和 round(double a,int d)

具体功能说明:hive中的round就是遵循四舍五入的规则,返回 double 类型的整数值部分,它有两种使用语法,首先讲一下round(double a,int d) ,这个表示对a进行四舍五入,从哪一位开始四舍五入是由d来控制的,d可以是1、2、0、-1、-2等等,即指定的精度。如下的保留了精度4,得到的结果就是3.1416,那么从这里就可以知道如果没有int d这个参数,就是默认精度为0,如下得到的结果就是3。

select round(3.1415926);
>> 3
select round(3.1415926, 4);
>> 3.1416

2、floor 向下取整函数 作用:向下取到最大的整数

常见使用方法:floor(double a)

具体功能说明:一句话简单解释这个函数的使用说明就是返回一个不大于a的最大整数,没有什么四舍五入的说法,就是对a直接进行向下取整,返回最大的那个整数。

select floor(3.000926);
>> 3

3、ceil 向上取整函数 作用:向上取到最小的整数

常见使用方法:ceil(double a)

具体功能说明:这个函数的使用功能刚好和floor相反,即向上取整,直接取到最小的整数,也没有什么四舍五入之说。

select ceil(3.1415926);
>> 4

4、 rand 取随机函数 作用:返回一个随机数

常见使用方法:rand(),rand(int s)

具体功能说明:使用这个函数就会返回一个 0 到 1 之间的随机数。如果指定了s参数,则会得到一个稳定的随机数序列。如下图所示,指定s=100,那么每一次返回的结果都是一样的。

select rand();
>> 0.712311371683693 
select rand(100)
>> 0.827388823999293
select rand(100)
>> 0.827388823999293