Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var my_sql_command = `insert into STAGING.TRANSFORM_TABLES.RN_USER_MATCH
- SELECT DISTINCT
- UM.EVENT_ID
- ,UM.derived_tstamp
- ,UM.MATCH_END_DATE
- ,UM.USER_ID
- ,UM.MATCH_SESSION_ID
- ,S.IS_SUBSCRIBER
- ,S.SUBSCRIPTION_TIER
- ,S.SUBSCRIPTION_TIER_S
- ,UM.Arena_Group
- ,UM.IS_PAYER
- ,UM.SENIORITY_BIN
- ,UM.LTV_GROUP
- ,UM.ENGAGEMENT_GROUP
- ,UM.MATCH_ID
- ,row_number() over (partition by UM.user_id, UM.match_end_date order by UM.derived_tstamp desc) as RN
- ,UM.PVP_MODE
- ,UM.REMATCH_CNT
- ,MATCH_EVENT_TYPE_ID as match_type_id
- ,ifnull(case when UM.MATCH_EVENT_TYPE_ID = 7 then LE.lo_event_type end,MATCH_EVENT_TYPE) as MATCH_TYPE
- ,ifnull(case when UM.MATCH_EVENT_TYPE_ID = 7 then CALENDAR.LO_EVENT_CONFIG_ID end,MATCH_EVENT_TYPE) as MATCH_SUB_TYPE
- ,case when UM.MATCH_EVENT_TYPE_ID = 7 and LE.LO_EVENT1_MATCH_MODE_TYPE is not null then LE.LO_EVENT1_MATCH_MODE_TYPE else MATCH_MODE_TYPE end as MATCH_MODE
- ,CASE WHEN MATCH_EVENT_TYPE_ID = 4 THEN CALENDAR.LO_ENTRY_MODIFIER_TYPE1 ELSE MATCH_MODIFIER_1 END as modifier_1
- ,CASE WHEN MATCH_EVENT_TYPE_ID = 4 THEN CALENDAR.LO_ENTRY_MODIFIER_TYPE2 ELSE MATCH_MODIFIER_2 END as modifier_2
- ,MATCH_LOP_EVENT_ID as calendar_entry_id
- ,CALENDAR.LO_ORIGINAL_ENTRY_ID AS ORIGINAL_CALENDAR_ENTRY_ID
- ,calendar.lo_event_dynamic_config_id as dynamic_config_id
- ,calendar.lo_event_config_id as config_id
- ,LE.lo_event_id
- ,LE.lo_solo_leaderboard_event_id as leaderboard_config_type
- ,LE.LO_EVENT1_SEGMENT AS EVENT_SEGMENT
- ,LE.LO_EVENT_SEGMENT_LOGIC AS EVENT_SEGMENT_LOGIC
- ,CALENDAR.LO_ENTRY_PUSH_NOTIFICATION_ENABLE AS IS_PUSH_NOTIFICATION_ENABLE
- ,CALENDAR.LO_ENTRY_PLAY_FOR_TROPHIES AS IS_RANKED
- ,CALENDAR.calendar_order AS TOURNAMENT_UI_ORDER
- ,CALENDAR.LO_ENTRY_TOURNAMENT_SIZE AS TOURNAMENT_SIZE
- ,CALENDAR.LO_TOURNAMENT_ENTRY_PRICE_COINS AS TOURNAMENT_ENTRY_COIN_PRICE
- ,CALENDAR.LO_ENTRY_MIN_BOOSTER_RARITY AS TOURNAMENT_MN_BOOSTER_RARITY
- ,CALENDAR.LO_ENTRY_MAX_BOOSTER_RARITY AS TOURNAMENT_MX_BOOSTER_RARITY
- ,R1.BOOSTER_TIER as BOOSTER_TIER_ID
- ,R1.BOOSTER_TIER_GROUP_NAME as BOOSTER_TIER
- ,R1.RESOURCE_TYPE_ID
- ,R1.RESOURCE_TYPE
- ,R1.RESOURCE_SUB_TYPE_ID
- ,R1.RESOURCE_SUB_TYPE
- ,R1.RESOURCE_ID
- ,BOOSTER_RESOURCE_NAME AS BOOSTER_NAME
- ,BOOSTER_RESOURCE_VERSION
- ,R1.RESOURCE_COIN_VALUE as BOOSTER_VALUE
- ,ABILITY_ACTIVATED_CNT
- ,ABILITY_FINAL_CHARGE_CNT
- ,R2.RESOURCE_TYPE as RIVAL_RESOURCE_TYPE
- ,R2.RESOURCE_SUB_TYPE as RIVAL_RESOURCE_SUB_TYPE
- ,MATCH_DURATION_SEC
- ,IS_BOT
- ,IS_RIVAL_BOT
- ,IS_WON
- ,IS_TECHNICAL
- ,IS_REMATCH
- ,IS_DEVELOPER
- ,IS_CONCEDED
- ,TURN_INDEX
- ,ROUNDS_CNT
- ,MATCH_SCORE
- ,IS_ON_FIRE_GAME
- ,IS_REACHED_ON_FIRE
- ,COINS_WON_AMT
- ,TROPHIES_WON_AMT
- ,WIN_STREAK_CNT
- ,LOSE_STREAK_CNT
- ,RESHUFFLE_CNT
- ,EXTRA_MOVES_CNT
- ,SPECIAL_EXPLODES_CNT
- ,RED_COMBOS_CNT
- ,GREEN_COMBOS_CNT
- ,BLUE_COMBOS_CNT
- ,YELLOW_COMBOS_CNT
- ,ORANGE_COMBOS_CNT
- ,PURPLE_COMBOS_CNT
- ,WHITE_COMBOS_CNT
- ,THREE_MATCHED_CNT
- ,FOUR_MATCHED_CNT
- ,FIVE_MATCHED_CNT
- ,RSHAPED_MATCHED_CNT
- ,BEST_MOVE_SCORE
- ,TIMEBANK_LEFT
- ,STARS_WON_AMT
- ,PREVIOUS_TROPHIES_BALANCE
- ,MATCH_BONUS_TROPHIES_CNT
- ,MATCH_SKILL_RATING
- ,RIVAL_USER_ID
- ,RIVAL_SESSION_ID
- ,RIVAL_BOOSTER_RESOURCE_NAME AS RIVAL_BOOSTER_NAME
- ,RIVAL_BOOSTER_RESOURCE_VERSION AS RIVAL_BOOSTER_VERSION
- ,PERK_1_RESOURCE_NAME
- ,PERK_2_RESOURCE_NAME
- ,RIVAL_TROPHIES_BALANCE
- ,RIVAL_WIN_RATE
- ,ARENA_INDEX
- ,MAX_PRIZE_ELIGIBILITY
- ,MAX_PRIZE_WON
- ,MOVES_LIMIT
- ,MOVES_MADE
- ,MOVES_LEFT
- ,MATCH_RANK
- ,ELIMINATION_ROUND
- ,LEVELS
- ,CS_RESYNCS
- ,INVALID_SWAPS
- ,ERROR_RESYNCS
- ,RIVAL_ERROR_RESYNCS
- ,ACTIVE_STYLE_PACK
- ,SHOW_OFF_BADGE_ID
- ,IN_GAME_SHOWN_TIME
- ,FIRST_ROUND_SHOWN_TIME
- ,TIMEBANK_SHOWN_RIVAL
- ,CONTEXT_SWITCHES
- ,INVALID_SWIPES
- ,EMOTE_SENT
- ,RIVAL_EMOTE_SENT
- ,MATCH_MAKING_FOUND_TIME
- ,TIMEBANK_SHOWN_PLAYER_AMT
- ,RIVAL_PERK_1_RESOURCE_NAME
- ,RIVAL_PERK_2_RESOURCE_NAME
- ,RIVAL_MATCH_SCORE
- ,RIVAL_AI_LEVEL
- ,RIVAL_PLAYED_OUT_OF_TIME
- ,TOTAL_RIVAL_PLAYED_OUT_OF_TIME_SEC
- ,LE.LO_EVENT_TYPE
- ,LE.LO_EVENT_CONFIG_ID
- ,UM.user_name
- ,UM.country
- ,UM.language
- ,UM.device_language
- ,UM.test_name
- ,UM.test_group_name
- ,UM.fb_user_ID
- ,UM.client_IP
- ,UM.is_testing_user
- ,UM.device_ID
- ,UM.device_model
- ,UM.device_os
- ,UM.platform
- ,UM.media_source
- ,UM.app_version
- ,UM.app_minor_version
- ,UM.first_install_DT
- ,UM.advertiser_ID
- ,UM.appsflyer_id
- ,UM.ad_name
- ,UM.campaign_name
- ,UM.total_IAP_amt
- ,UM.stars_cnt
- ,UM.LT_matches_played_cnt
- ,UM.LT_matches_won_cnt
- ,UM.LT_purchases_amt
- ,UM.event_source
- ,UM.is_shielded_game
- ,CASE WHEN LE.lo_event_id like (''%rumble%'') THEN
- TRY_TO_NUMBER(split_part(LE.lo_event_id, ''-'', 3)) else Null END AS rumble_size
- ,um.current_arena_index
- ,um.is_random_mixer
- ,um.ad_id
- ,um.adset
- , um.adset_id
- ,um.campaign_id
- ,um.influencer_name
- ,um.team_ID
- ,um.trophies_cnt
- ,um.af_keywords
- ,um.site_id
- ,um.team_name
- ,um.board_ability1_uses
- ,um.board_ability2_uses
- ,um.device_id_hash
- ,um.is_private
- ,um.live_event_pieces_collected
- ,um.mutations_pick
- ,um.mutation_options
- ,um.outfit_id
- ,um.live_event_pieces_spawned
- ,um.live_event_pieces_eligible
- ,um.match_modifier_3
- FROM
- (
- SELECT distinct
- SERVER_EVENT_ID as event_id
- ,MATCH_END_DATE
- ,server_event_id
- ,server_derived_tstamp as derived_tstamp
- ,USER_ID
- ,MATCH_ID
- ,PVP_MODE
- ,REMATCH_CNT
- ,MATCH_SESSION_ID
- ,iff(SUBSCRIPTION_TIER=0, false,true) as IS_SUBSCRIBER
- ,SUBSCRIPTION_TIER
- ,CASE WHEN current_arena_index <=13 THEN ''Studios''
- WHEN current_arena_index between 14 and 22 THEN ''Master League''
- ELSE ''Legends League'' END as Arena_Group
- ,CASE WHEN TOTAL_IAP_AMT > 0 THEN True
- ELSE False
- END AS IS_PAYER
- , DATE(MATCH_END_DATE)-DATE(FIRST_INSTALL_DT) as seniority
- , CASE WHEN seniority<=2 THEN ''1_2''
- WHEN seniority<=10 THEN ''3-10''
- WHEN seniority<=30 THEN ''11_30''
- WHEN seniority<=90 THEN ''31_90''
- WHEN seniority<=180 THEN ''91_180''
- WHEN seniority<=360 THEN ''181_360''
- WHEN seniority<=720 THEN ''361_720''
- WHEN seniority>720 THEN ''>720''
- ELSE NULL
- END AS seniority_bin
- , CASE WHEN STARS_CNT*7>=70 THEN ''4 Very High''
- WHEN STARS_CNT*7>=30 THEN ''3 High''
- WHEN STARS_CNT*7>=10 THEN ''2 Med''
- WHEN STARS_CNT*7>=0 THEN ''1 Low''
- ELSE NULL
- END as ENGAGEMENT_GROUP
- , CASE WHEN TO_NUMBER(TOTAL_IAP_AMT) = 0 THEN ''0''
- WHEN TO_NUMBER(TOTAL_IAP_AMT) <= 10 THEN ''Low''
- WHEN TO_NUMBER(TOTAL_IAP_AMT) <= 100 THEN ''Med''
- WHEN TO_NUMBER(TOTAL_IAP_AMT) <= 299 THEN ''High''
- WHEN TO_NUMBER(TOTAL_IAP_AMT) <= 999 THEN ''Very High''
- WHEN TO_NUMBER(TOTAL_IAP_AMT) >= 1000 THEN ''VIP''
- ELSE NULL
- END AS LTV_group
- ,MATCH_MODE_TYPE
- ,MATCH_MODIFIER_1
- ,MATCH_MODIFIER_2
- ,MATCH_EVENT_TYPE_ID
- ,CASE WHEN MATCH_EVENT_TYPE_ID = 2 THEN ''Classic''
- WHEN MATCH_EVENT_TYPE_ID = 3 THEN ''Challenge''
- WHEN MATCH_EVENT_TYPE_ID = 4 THEN ''Tournament''
- WHEN MATCH_EVENT_TYPE_ID = 5 THEN ''Daily''
- WHEN MATCH_EVENT_TYPE_ID = 7 THEN ''Other''
- ELSE ''Other''
- END as MATCH_EVENT_TYPE
- ,CASE WHEN MATCH_EVENT_TYPE_ID in (4,5) THEN MATCH_MODE_TYPE
- WHEN MATCH_EVENT_TYPE_ID = 7 THEN MATCH_LOP_EVENT_TYPE
- ELSE ''N/A''
- END as MATCH_MODE
- ,BOOSTER_RESOURCE_NAME
- ,BOOSTER_RESOURCE_VERSION
- ,PERK_1_RESOURCE_NAME
- ,PERK_2_RESOURCE_NAME
- ,ABILITY_ACTIVATED_CNT
- ,ABILITY_FINAL_CHARGE_CNT
- ,RIVAL_PLAYED_OUT_OF_TIME
- ,RIVAL_BOOSTER_RESOURCE_NAME
- ,RIVAL_BOOSTER_RESOURCE_VERSION
- ,TOTAL_RIVAL_PLAYED_OUT_OF_TIME_SEC
- ,MATCH_MAKING_FOUND_TIME
- ,TIMEBANK_SHOWN_PLAYER_AMT
- ,ROUNDS_CNT
- ,COINS_WON_AMT
- ,TROPHIES_WON_AMT
- ,IFF(IS_WON = TRUE, 1, 0) as IS_WON
- ,MATCH_SCORE
- ,MATCH_DURATION_SEC
- ,TURN_INDEX
- ,IFF(IS_BOT = TRUE , 1,0) as IS_BOT
- ,IFF(IS_TECHNICAL = TRUE, 1, 0) as IS_TECHNICAL
- ,IFF(IS_REMATCH = TRUE , 1,0) as IS_REMATCH
- ,IFF(IS_DEVELOPER = TRUE , 1,0) as IS_DEVELOPER
- ,IFF(IS_CONCEDED = TRUE , 1,0) as IS_CONCEDED
- ,IFF(IS_RIVAL_BOT = TRUE,1,0) as IS_RIVAL_BOT
- ,IFF(IS_ON_FIRE_GAME = TRUE,1,0) as IS_ON_FIRE_GAME
- ,IFF(IS_REACHED_ON_FIRE = TRUE,1,0) as IS_REACHED_ON_FIRE
- ,MATCH_LOP_EVENT_ID
- ,MATCH_LOP_EVENT_TYPE
- ,WIN_STREAK_CNT
- ,LOSE_STREAK_CNT
- ,RESHUFFLE_CNT
- ,EXTRA_MOVES_CNT
- ,SPECIAL_EXPLODES_CNT
- ,RED_COMBOS_CNT
- ,GREEN_COMBOS_CNT
- ,BLUE_COMBOS_CNT
- ,YELLOW_COMBOS_CNT
- ,ORANGE_COMBOS_CNT
- ,PURPLE_COMBOS_CNT
- ,WHITE_COMBOS_CNT
- ,THREE_MATCHED_CNT
- ,FOUR_MATCHED_CNT
- ,FIVE_MATCHED_CNT
- ,RSHAPED_MATCHED_CNT
- ,BEST_MOVE_SCORE
- ,TIMEBANK_LEFT
- ,STARS_WON_AMT
- ,PREVIOUS_TROPHIES_BALANCE
- ,MATCH_BONUS_TROPHIES_CNT
- ,MATCH_SKILL_RATING
- ,RIVAL_USER_ID
- ,RIVAL_SESSION_ID
- ,RIVAL_PERK_1_RESOURCE_NAME
- ,RIVAL_PERK_2_RESOURCE_NAME
- ,RIVAL_TROPHIES_BALANCE
- ,RIVAL_WIN_RATE
- ,RIVAL_MATCH_SCORE
- ,RIVAL_AI_LEVEL
- ,ARENA_INDEX
- ,MAX_PRIZE_ELIGIBILITY
- ,MAX_PRIZE_WON
- ,MOVES_LIMIT
- ,MOVES_MADE
- ,MOVES_LEFT
- ,LEVELS
- ,CS_RESYNCS
- ,MATCH_RANK
- ,ELIMINATION_ROUND
- ,INVALID_SWAPS
- ,ERROR_RESYNCS
- ,RIVAL_ERROR_RESYNCS
- ,ACTIVE_STYLE_PACK
- ,SHOW_OFF_BADGE_ID
- ,IN_GAME_SHOWN_TIME
- ,FIRST_ROUND_SHOWN_TIME
- ,TIMEBANK_SHOWN_RIVAL
- ,CONTEXT_SWITCHES
- ,INVALID_SWIPES
- ,EMOTE_SENT
- ,RIVAL_EMOTE_SENT
- ,user_name
- ,country
- ,language
- ,device_language
- ,test_name
- ,test_group_name
- ,fb_user_ID
- ,client_IP
- ,is_testing_user
- ,device_ID
- ,device_model
- ,device_os
- ,platform
- ,media_source
- ,app_version
- ,app_minor_version
- ,first_install_DT
- ,advertiser_ID
- ,appsflyer_id
- ,ad_name
- ,campaign_name
- ,total_IAP_amt
- ,stars_cnt
- ,LT_matches_played_cnt
- ,LT_matches_won_cnt
- ,LT_purchases_amt
- ,event_source
- ,is_shielded_game
- ,current_arena_index
- ,is_random_mixer
- ,ad_id
- ,adset
- ,adset_id
- ,campaign_id
- ,influencer_name
- ,team_ID
- ,trophies_cnt
- ,af_keywords
- ,site_id
- ,team_name
- ,board_ability1_uses
- ,board_ability2_uses
- ,device_id_hash
- ,is_private
- ,live_event_pieces_collected
- ,mutations_pick
- ,mutation_options
- ,outfit_id
- ,live_event_pieces_spawned
- ,live_event_pieces_eligible
- ,match_modifier_3
- FROM SNOWPLOW.DERIVED.USER_MATCH_TOTAL
- WHERE MATCH_END_DATE IS NOT NULL
- and match_end_date >= dateadd(day, -1,date(current_date())) and event_id not in (select
- distinct event_id from STAGING.TRANSFORM_TABLES.RN_USER_MATCH where
- match_end_date >= dateadd(day, -1,date(current_date())))
- and is_bot = false
- QUALIFY ROW_NUMBER() OVER (PARTITION by concat(user_id,match_id,rematch_cnt)
- ORDER BY CONTEXT_SWITCHES ASC) = 1
- ) as UM
- LEFT JOIN (SELECT *
- FROM CANDIVORE.PROD.DIM_RESOURCE_VERSION
- WHERE is_inventory_resource = true AND resource_type = 'Booster' AND (resource_UI_order > -1 or
- resource_UI_order is null)
- QUALIFY ROW_NUMBER() OVER (PARTITION by resource_name ORDER BY
- resource_version desc) = 1) R1
- ON UM.BOOSTER_RESOURCE_NAME = R1.RESOURCE_NAME AND
- UM.BOOSTER_RESOURCE_VERSION = R1.RESOURCE_VERSION
- LEFT JOIN
- (SELECT *
- FROM CANDIVORE.PROD.DIM_RESOURCE_VERSION
- WHERE is_inventory_resource = true AND resource_type = 'Booster' AND (resource_UI_order > -1 or
- resource_UI_order is null)
- QUALIFY ROW_NUMBER() OVER (PARTITION by resource_name ORDER BY
- resource_version desc) = 1) R2
- ON UM.RIVAL_BOOSTER_RESOURCE_NAME = R2.RESOURCE_NAME AND
- UM.RIVAL_BOOSTER_RESOURCE_VERSION = R2.RESOURCE_VERSION
- LEFT JOIN (select * from SNOWPLOW.DERIVED.LIVEOPS_EVENT_CONFIG qualify row_number() over (partition by lo_event_id order by ifnull(lo_event_config_ts, lo_event_config_update_ts) desc) = 1) LE
- ON UM.MATCH_LOP_EVENT_TYPE = LE.LO_EVENT_ID
- LEFT JOIN (select * from SNOWPLOW.DERIVED.LIVEOPS_CALENDAR qualify row_number() over (partition by lo_entry_id order by ifnull(lo_entry_ts, lo_entry_update_ts) desc) = 1) calendar
- on UM.match_lop_event_id = calendar.LO_ENTRY_ID
- LEFT JOIN (select USER_ID
- ,MATCH_END_DATE
- ,iff(SUBSCRIPTION_TIER>0, true,false) as IS_SUBSCRIBER
- ,SUBSCRIPTION_TIER
- ,case when subscription_tier = 1 then ''Silver''
- when subscription_tier = 2 then ''Gold''
- when subscription_tier = 3 then ''Diamond'' else NULL end AS
- SUBSCRIPTION_TIER_S
- FROM SNOWPLOW.DERIVED.USER_MATCH_TOTAL
- WHERE MATCH_END_DATE IS NOT NULL
- and match_end_date >= dateadd(day, -1,date(current_date())) and SERVER_EVENT_ID not in
- (select distinct event_id from STAGING.TRANSFORM_TABLES.RN_USER_MATCH where
- match_end_date >= dateadd(day, -1,date(current_date())))
- and is_bot = false
- QUALIFY row_number() OVER (PARTITION BY USER_ID, MATCH_END_DATE ORDER
- BY server_derived_tstamp DESC)=1 ) S
- ON S.USER_ID = UM.USER_ID AND S.MATCH_END_DATE = UM.MATCH_END_DATE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement