zoukankan      html  css  js  c++  java
  • 找出两个异构数据库的差异(找出其中的缺失记录)

    -- oracle
    select
         substr(md5(key_id),1,1) as flag
        ,count(1)             as cnt
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 8  as key_id union all 
        select 9  as key_id union all 
        select 10 as key_id
    ) t1
    group by 
        substr(md5(key_id),1,1)
    ;
    +------+-----+
    | flag | cnt |
    +------+-----+
    | 1    |   1 |
    | 4    |   1 |
    | 8    |   1 |
    | a    |   1 |
    | c    |   3 |
    | d    |   1 |
    | e    |   2 |
    +------+-----+
    
    -- hive
    select
         substr(md5(key_id),1,1) as flag
        ,count(1)             as cnt
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 9  as key_id union all 
        select 10  as key_id
    ) t1
    group by 
        substr(md5(key_id),1,1)
    ;
    +------+-----+
    | flag | cnt |
    +------+-----+
    | 1    |   1 |
    | 4    |   1 |
    | 8    |   1 |
    | a    |   1 |
    | c    |   2 |
    | d    |   1 |
    | e    |   2 |
    +------+-----+
    
    -- 经过比对,flag c有差异
    -- oracle
    select
         substr(md5(key_id),1,2) as flag
        ,count(1)             as cnt
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 8  as key_id union all 
        select 9  as key_id union all 
        select 10 as key_id
    ) t1
    where substr(md5(key_id),1,1) = 'c'
    group by 
        substr(md5(key_id),1,2)
    ;
    +------+-----+
    | flag | cnt |
    +------+-----+
    | c4   |   1 |
    | c8   |   1 |
    | c9   |   1 |
    +------+-----+
    
    -- hive
    select
         substr(md5(key_id),1,2) as flag
        ,count(1)             as cnt
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 9  as key_id union all 
        select 10 as key_id
    ) t1
    where substr(md5(key_id),1,1) = 'c'
    group by 
        substr(md5(key_id),1,2)
    ;
    +------+-----+
    | flag | cnt |
    +------+-----+
    | c4   |   1 |
    | c8   |   1 |
    +------+-----+
    
    -- 经过比对,flag c9有差异
    -- oracle
    select t1.*
    from (
        select 1  as key_id union all 
        select 2  as key_id union all 
        select 3  as key_id union all 
        select 4  as key_id union all 
        select 5  as key_id union all 
        select 6  as key_id union all 
        select 7  as key_id union all 
        select 8  as key_id union all 
        select 9  as key_id union all 
        select 10 as key_id
    ) t1
    where substr(md5(key_id),1,2) = 'c9'
    ;
  • 相关阅读:
    CodeForces 906D (欧拉降幂)
    洛谷4139 bzoj 3884 上帝与集合的正确用法
    The Preliminary Contest for ICPC Asia Nanjing 2019ICPC南京网络赛
    主席树之初见
    HDU 6709“Fishing Master”(贪心+优先级队列)
    [数论]拓展中国剩余定理
    [数论] 求逆元
    2019 年百度之星·程序设计大赛
    2019 年百度之星·程序设计大赛
    pb_ds中的hash_table
  • 原文地址:https://www.cnblogs.com/chenzechao/p/12609187.html
Copyright © 2011-2022 走看看