hive sql 高级函数

  1. 行转列,列转行函数,一行转多行,多行转一行

    行拆多行

    函数  explode(myCol)把数组拆开,常与lateral view搭配使用,

             posexplode(myCol),此函数还能拿到数据的index

    1.select create_time,table_id

    from 

    dj_ods_ds.o_t_job_mail mail

    ta lateral view explode(split(hive_table_id,',')) te as table_id

  2. 多行聚集到一行

    函数collect_set(col) 会去重

           collect_list(col) 不会去重,都返回数组

    select no,collect_set(score) from tablss group by no;

  3. tuple parse_url_tuple(url, p1, p2, ...) 解析url得到参数值,返回元组

    string get_json_object(string json_string, string path) 解析json字符串

    tuple json_tuple(jsonStr, k1, k2, ...) 一次返回多个值,比上面这个函数效率

  4.   CUBE 的使用 SELECT  month, day,

    COUNT(DISTINCT cookie) AS uv,

    GROUPING__ID

    FROM tmp.test_group

    GROUP BY month,day 

    WITH CUBE 

    order by GROUPING__ID limit 20;

  5. 行转列 select  max(case when line='xx' then num end) as `xx`,
          max(case when line='yy' then num end) as `yy`
          from 
    (select line,count(*) num from 
    tablea
    group by line) ta 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wending-Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值