Hive SQL 日常工作使用总结

写写日常在使用Hive SQL做分析时经常使用的一些函数或者方法


like

  • like用于指定特定的字符串,或结合正则做模糊匹配
select uid from dw.today where tunittype like '%wew.%'
  • rlike是hive中对like的扩展,将原先多个like才能完成的任务,使用一个rlike就可以搞定。
select uid from dw.today where tunittype rlike '.*(you|me).*'

点号(.):表示和任意字符串匹配,星号(*):表示重复“左边的字符串”,(x|y)表示和x或者y匹配

  • 对like取反
    一般,like的语法形式是: A LIKE B,取反的语法形式:NOT A LIKE B
select uid from dw.today where not tunittype like '%wew.%'

时间区间

工作中,需要查询某个区间的用户量,这个时候就需要对时间做处理,以便快速搞定

  • 30分钟作为一个区间段
SELECT DISTINCT FROM_UNIXTIME(60*30*CAST(UNIX_TIMESTAMP("2017-11-11 13:23:23")/(60*30) AS BIGINT), 'yyyy-MM-dd HH:mm:ss')
FROM test_table

这里便将时间转化为13:00:00,记录的是13:00:00至13:30:00这段时间的数据量

  • 10分钟作为一个区间段
SELECT DISTINCT FROM_UNIXTIME(60*10*CAST(UNIX_TIMESTAMP("2017-11-11 13:23:23")/(60*10) AS BIGINT), 'yyyy-MM-dd HH:mm:ss')
FROM test_table

总结:一个小时60分钟,一分钟60秒,按照时间单位的秒来转化为相应的区间

排序

  • oder by

  • 得到rank

语法形式:

row_number() over (partition by 字段 a order by 计算项 b desc ) rank

rank 排序的名称;partition by:类似 hive 的建表,分区的意思;order by :排序ÿ

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值