美文网首页
Hive "行转列"和"列转行"

Hive "行转列"和"列转行"

作者: e237262360d2 | 来源:发表于2018-03-14 16:05 被阅读0次

    在HIVE实际开发过程中,我们会遇到“行转列”和“列转行”的场景。比如:

    1、 需要取“订单号”对应的所有商品“SKU号”,商品“sku号”放在一列,即从table1查询出table2;

    2、 当商品“sku号”均在一列的时候,需要查询每个“sku号”对应的“订单号”,即从table2查询出table1。

    实现方法:

    1、从table1查询出table2:

    SELECT

    sale_ord_id

    ,concat_ws(',',collect_set(item_sku_id))as item_sku_id

    FROM table1

    WHERE dt=sysdate(-1)

    GROUP BY sale_ord_id

    关键点:使用到concat_ws()和collect_set()

    2、从table2查询出table1:

    SELECT      

    sale_ord_id

    ,sku_id 

    FROM table2

    LATERAL VIEW  explode(split(item_sku_id,',')) adTable AS sku_id

    WHERE dt=sysdate(-1)

    关键点:使用到explode()、split()和LATERAL VIEW

    相关文章

      网友评论

          本文标题:Hive "行转列"和"列转行"

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