美文网首页
2022-03-04 Hive函数

2022-03-04 Hive函数

作者: Denholm | 来源:发表于2022-03-05 11:20 被阅读0次
    -- #################Hive的函数########################
    -- 1、内置函数
    -- 四舍五入
    -- 默认取整
    select round(3.1415);
    select round(3.5415);
    -- 保留几位小数
    select round(3.5415, 3);
    
    select sid, round(avg(sscore)) avg
    from score
    group by sid
    order by avg desc;
    
    select sid, round(avg(sscore), 2) avg
    from score
    group by sid
    order by avg desc;
    
    -- 向下取整
    select floor(5.698);
    -- 向上取整
    select ceil(5.123);
    
    -- 随机数(0-1之间)
    select rand();
    -- 指定种子seed,则会返回固定的随机数
    select rand(5);
    -- 0.730519863614471
    
    -- 幂运算
    select pow(2, 3);
    
    -- 求绝对值
    select abs(-10.0009);
    select abs(74.45678);
    
    
    -- 2、字符串函数
    -- 求字符串长度
    select length('abcd');
    
    -- 字符串反转
    select reverse("hello");
    
    -- 拼接字符串(数量任意)
    select concat('hello', 'world', 'fucking', 'money');
    
    -- 拼接字符串(数量任意),第一个参数指定分隔符
    select concat_ws(',', 'abc', 'def', 'gh');
    
    -- 返回从索引处到末尾的字符串
    select substr('abcde', 3);
    -- 同substr
    select substring('abcde', 3);
    -- 返回从-1位置截取到末尾的字符串
    select substr('abcde', -1);
    
    -- 返回从索引3处开始,截取长度为2的字符串
    select substr('abcde', 3, 2);
    -- 返回从-2位置开始,截取长度为2的字符串
    select substring('abcde', -2, 2);
    
    -- 字符串大写函数
    select upper('dasAhkK');
    -- 同upper
    select ucase('dasAhkK');
    
    -- 字符串小写函数
    select lower('dasAhkK');
    -- 同upper
    select lcase('dasAhkK');
    
    -- 去空格
    -- 去除两边空格(不能去除字符串中间空格)
    select trim(' ab    c   ');
    -- 去除左边空格
    select ltrim(' ab    c   ');
    -- 去除右边空格
    select rtrim(' ab    c   ');
    
    -- 正则
    -- select regexp_replace(A, B, C);
    -- 将字符串A中符合java正则表达式B的部分替换成C
    select regexp_replace('foobar', 'oo|ar', '');
    
    -- URL解析函数
    -- 返回URL中指定的部分
    -- partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO
    select parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST');
    select parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'PATH');
    select parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1');
    
    -- 字符串分割函数
    select split('abtcdtef', 't');
    
    -- 日期函数
    -- 获得当前时区的UNIX时间戳 (秒)
    select unix_timestamp();
    
    -- UNIX时间戳转日期函数
    select from_unixtime(1646388127, 'yyyy-MM-dd HH:mm:ss');
    
    -- 日期转UNIX时间戳函数
    select unix_timestamp('2022-03-04 10:02:07');
    
    -- 指定格式日期转UNIX时间戳函数
    select unix_timestamp('20111207 13:01:03', 'yyyyMMdd HH:mm:ss');
    
    -- 日期时间转日期函数
    -- 返回日期时间字段中的日期部分(年月日)
    select to_date('2011-12-08 10:03:01');
    
    -- 日期转年函数
    -- 返回日期中的年
    select year('2022-03-04 18:09:45');
    
    -- 日期转月函数
    -- 返回日期中的月
    select month('2022-03-04 18:09:45');
    
    -- 日期转天函数
    -- 返回日期中的天
    select day('2022-03-04 18:09:45');
    
    -- 日期转周函数
    -- 返回日期在当前的周数
    select weekofyear('2022-03-04 18:09:45');
    
    -- 日期比较函数
    -- datediff(string enddate, string startdate)
    -- 返回结束日期减去开始日期的天数
    select datediff('2012-12-08', '2012-05-09');
    select datediff('2012-05-09', '2012-12-08');
    
    -- 日期增加函数
    -- 返回开始日期startdate增加days天后的日期
    select date_add('2012-12-08', 10);
    
    -- 日期减少函数
    -- 返回开始日期startdate减少days天后的日期
    select date_sub('2012-12-08', 10);
    
    -- date_format函数
    select date_format('2020-1-1 1:1:1', 'yyyy-MM-dd HH:mm:ss');
    
    -- 3、条件函数
    
    -- if语句
    select sid, sscore, if(sscore >= 60, '及格', '不及格') as flag
    from score
    order by sscore desc;
    
    -- case语句
    select sid,
           sscore,
           case sscore
               when 0 then '零分'
               when 100 then '一百分'
               else '有分'
               end as flag
    from score;
    
    -- 重点,remember
    select sid,
           sscore,
           case
               when sscore >= 85 and sscore <= 100 then '优秀'
               when sscore >= 70 then '良好'
               when sscore >= 60 then '及格'
               else '不及格'
               end as flag
    from score
    order by sscore desc;
    
    

    相关文章

      网友评论

          本文标题:2022-03-04 Hive函数

          本文链接:https://www.haomeiwen.com/subject/wepmrrtx.html