美文网首页
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