hive中的常用SQL

count()

如果这一行是null,不会计数,如果不是null,就计1.

hour()

将时间戳转换为小时.

select current_timestamp;

查询当前时间戳.

select unix_timestamp();

查询当前时间戳转换成的Long类型

from_unixtime()

将Long类型转为时间戳.

窗口函数

CURRENT ROW:当前行  current row

n PRECEDING:往前n行数据  n  preceding

n FOLLOWING:往后n行数据  n following

UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点, UNBOUNDED FOLLOWING表示到后面的终点  unbound preceding  unbound following

rows between unbounded preceding and unbounded following 从前面的起点到后面的终点,这行语句跟在over()中的order by 之后

LAG(col,n):往前第n行数据  lag  参数一 字段  n

LEAD(col,n):往后第n行数据 lead

with tmp as()

将()中的查询结果作为一张名为'tmp'的临时表.

round(x,2)

x保留两位小数

nvl(a,b)

如果第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值

concat_ws('分隔符',expr1,expr2,...)

拼接字符串,以指定的分隔符隔开

concat_ws('分隔符',数组)

将数组中的元素拼接成字符串,以指定分隔符隔开

-------------------------------------------------------------------------------------------

collect_set(expr1,expr2,...)

将多个元素转换成一个数组,去重

collect_list(expr1,expr2,...)

将多个元素转换成一个数组,不去重

collect_set(列)  

聚合函数  将所有的列组成数组  去重

collect_list(列)

聚合函数   将所有的列组成数组  不会去重

-------------------------------------------------------------------------------------------

array(expr1,expr2,...)

将多个元素转换成一个数组

sort_array(数组)

将数组中的元素排序.

split(字符串,切割符)

将字符串按指定切割符切割,切割完得到的元素放入一个数组.

regexp_extract('foothebar','foo(.*?)(bar)',2)

正则匹配,上面的例子得到的结果是'bar','.*?'表示任何字符串,上面的例子就是正则表达式如果可以匹配到前面的字符串,那么就会返回第2个括号中的东西,如果把2改成1,就会返回'the',也就是第1个括号里的东西.

select name ,tp
from
tb_movie2
lateral view 
explode(category) t  as  tp ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值