sql  join 用户数据

    with  
       f as (
   select * from (
   SELECT   player_id  , DATE(timestamp ) as dt ,ROW_NUMBER() OVER (PARTITION BY player_id ORDER BY timestamp DESC) AS rn, FROM `heidao-market.mafia1_ods.game_log_login` 
   WHERE DATE(timestamp) >= '2020-01-10' and DATE(timestamp) <= '2020-01-11')
   where rn=1),
    
    A as (SELECT kingdom_id,player_id,timestamp,uid FROM `heidao-market.mafia1_ods.game_log_create_player` WHERE player_id in (select player_id from f ) 
    and timestamp >'2014-01-01'),
           
      B as (select device_id, uid ,attribute_lang        from `mafia1_pf.v_game_user` where create_time >'2014-01-01'),
      
    
      myevent as (  select A.uid,B.device_id as de_id , B.attribute_lang as language,
                  A.timestamp as created_time, A.kingdom_id,A.player_id from B  inner join  A on B.uid=A.uid ),
      
      C as (select * from `mafia1_pf.v_device_list`  where create_time >'2014-01-01' ),
    
     D as (select 
    --distinct C.time as device_time,
    date(myevent.created_time)  as created_date,
    myevent.player_id,
    myevent.language ,
    C.country_code,
    C.source,
    C.device_type,
    C.os_type,
    C.system_lang,kingdom_id 
    from C
    inner join   myevent on C.device_id=myevent.de_id),
    
    G as (select distinct player_id,created_date,language	,country_code,source,device_type,os_type,system_lang from D)

    select *from (  SELECT G.player_id,G.created_date , G.country_code, G.source  ,
    G.device_type,G.os_type,G.system_lang, G.language,
    ROW_NUMBER() OVER (PARTITION BY G.player_id ORDER BY G.created_date DESC) AS rt, FROM G  )where rt=1
posted @ 2022-08-19 22:52  luoganttcc  阅读(7)  评论(0)    收藏  举报