美文网首页
hive 中给union出来的表加一个序号

hive 中给union出来的表加一个序号

作者: 大小X徐鹏 | 来源:发表于2019-06-11 16:18 被阅读0次
    SELECT * FROM (
        SELECT *, row_number() OVER(PARTITION BY grank order by ts) as global_id FROM (
            SELECT *, row_number() OVER(PARTITION BY id, type, ts, dataset order by ts) as grank FROM (
                SELECT ---
                UNION ALL
                SELECT ---
            ) gen
        ) general 
    ) global
    WHERE ts > 1501786799999 
    ORDER BY ts, dataset, type LIMIT 50;
    
    第三行的PARTITION BY 后面的条件能唯一确定一条记录, order by 任意(看实际业务), 这时候 所有的grank都只有1(每组只有提条记录), 再PARTITION BY  grank 所有的都会在一个组  然后rank就刚好可以当序号
    

    相关文章

      网友评论

          本文标题:hive 中给union出来的表加一个序号

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