Advertisement
YuvalGai

Untitled

May 7th, 2023
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.58 KB | None | 0 0
  1.  
  2. CREATE OR REPLACE TABLE CANDIVORE.SEMANTIC_LAYER.T_EARN_SPENT_LIGHT AS
  3. WITH DATA AS (SELECT *
  4. , CASE
  5.     WHEN is_usd_paid = TRUE THEN 'Paid'
  6.     WHEN is_coin_paid = TRUE THEN 'Coin Paid'
  7.     ELSE 'Unpayed'
  8.   END AS transaction_type
  9. , CASE
  10.     WHEN transaction_source LIKE 'admin%' OR transaction_source LIKE 'auto%'  OR transaction_source LIKE 'promocode' OR transaction_source LIKE 'promote' THEN 'admin_dashboard'
  11.     WHEN transaction_source = 'badge' OR transaction_source = 'best_team' OR transaction_source LIKE 'version_upgrade' OR transaction_source LIKE 'convert_to%' OR transaction_source LIKE 'feature_unlock%' OR
  12.     transaction_source = 'fix' OR transaction_source = 'rate_us' OR transaction_source LIKE 'update_%'  THEN 'others'
  13.     WHEN transaction_source = 'booster_refill' THEN 'booster_refill'
  14.     WHEN transaction_source = 'helper_select_popup_chest' THEN 'booster_select'
  15.     WHEN transaction_source = 'booster_select_popup' THEN 'booster_select_popup'
  16.     WHEN transaction_source = 'booster_select' THEN 'booster_select_bargain'
  17.     WHEN transaction_source = 'coin_packs' THEN 'coin_packs'
  18.     WHEN transaction_source = 'create_team' THEN 'create_team'
  19.     WHEN transaction_source = 'dev_master' THEN 'dev_master'
  20.     WHEN transaction_source = 'disconnection_refund' THEN 'disconnection_refund'
  21.     WHEN transaction_source = 'team_request' THEN 'team_request'
  22.     WHEN transaction_source LIKE 'team_%' THEN 'donation'
  23.     WHEN transaction_source LIKE 'expired_claimable_rewards%' THEN 'expired_claimable_rewards'
  24.     WHEN transaction_source LIKE 'fb_%' OR transaction_source LIKE 'friend_joined' THEN 'facebook'
  25.     WHEN transaction_source LIKE 'free_gift%' THEN 'gift'
  26.     WHEN transaction_source = 'home_screen_offer' THEN 'home_screen_offer'
  27.     WHEN transaction_source = 'join_team' THEN 'join_team'
  28.     WHEN transaction_source LIKE 'live_event%' THEN 'live_event'
  29.     WHEN transaction_source LIKE 'master%' THEN 'master_league'
  30.     WHEN transaction_source = 'match_end' THEN 'match_end'
  31.     WHEN transaction_source LIKE 'no_activity%' THEN 'no_activity'
  32.     WHEN transaction_source LIKE '%progression%' THEN 'progression_triggered'
  33.     WHEN transaction_source LIKE 'rewarded_video%' THEN 'rewarded_video'
  34.     WHEN transaction_source = 'season_end' THEN 'season_end'
  35.     WHEN transaction_source LIKE 'special_offer%' THEN 'special_offer'
  36.     WHEN transaction_source = 'special_sale' THEN 'special_sale'
  37.     WHEN transaction_source = 'spin_deal' THEN 'spin_deal'
  38.     WHEN transaction_source LIKE 'perk_select%' THEN 'perk_select'
  39.     WHEN transaction_source = 'spin' OR transaction_source = 'spin_chest' THEN 'spins'
  40.     WHEN transaction_source LIKE 'sticker_album%' OR transaction_source = 'sticker_token' OR transaction_source = 'stickers_trading' THEN 'sticker_album'
  41.     WHEN transaction_source LIKE 'store_special_offer%' THEN 'store_special_offer'
  42.     WHEN transaction_source = 'daily_deals' AND is_coin_paid = TRUE THEN 'store_bargain'
  43.     WHEN transaction_source = 'daily_deals' AND is_usd_paid = TRUE THEN 'store_payed'
  44.     WHEN transaction_source = 'daily_deals' AND is_coin_paid = FALSE AND is_usd_paid = FALSE THEN 'store_free'
  45.     WHEN transaction_source LIKE 'subscription%' THEN 'subscription'
  46.     WHEN transaction_source = 'super_spin' THEN 'super_spin'
  47.     WHEN transaction_source = 'super_spin_deal' THEN 'super_spin_deal'
  48.     WHEN transaction_source = 'booster_help' OR transaction_source = 'team_request' THEN 'team_request'
  49.     WHEN transaction_source = 'tickets_pack' THEN 'tickets_pack'
  50.     WHEN transaction_source LIKE 'tournament%' THEN 'tournament'
  51.     WHEN transaction_source = 'unknown' THEN 'unknown'
  52. END transaction_source_lvl_0
  53.  
  54. , CASE
  55.     WHEN transaction_source = 'booster_select' OR (transaction_source = 'daily_deals' AND is_coin_paid = TRUE) OR transaction_source = 'helper_select_popup_chest' OR transaction_source LIKE 'perk_select%' OR transaction_source LIKE 'special_offer%' OR transaction_source = 'spin'
  56.     OR transaction_source = 'spin_chest' OR transaction_source = 'super_spin' OR transaction_source LIKE '%donation%' OR transaction_source = 'tickets_pack' THEN TRUE
  57.     ELSE FALSE
  58.   END AS is_bargain
  59.  
  60. , CASE
  61.     WHEN lo_event_id LIKE '%mutation%' THEN 'solo_mutation'
  62.     WHEN lo_event_id LIKE 'Solo%' OR lo_event_id LIKE 'solo%' THEN 'solo'
  63.     WHEN lo_event_type = 'Rumble' THEN 'rumble'
  64.     WHEN lo_event_type = 'AdventureMode' THEN 'adventure'
  65.     WHEN lo_event_type LIKE 'Leaderboard%' THEN 'leaderboard'
  66.     WHEN lo_event_type LIKE 'BoostersClash' THEN 'boosters_clash'
  67.     WHEN match_type_id = 4 OR transaction_source LIKE 'tournament%' THEN 'tournament'
  68.     WHEN match_type_id = 5 THEN 'daily'
  69.     WHEN match_type_id = 2 THEN 'classic'
  70. END AS match_type
  71.          
  72. FROM CANDIVORE.PROD.F_CORE_USER_TRANSACTION
  73. WHERE DATE(derived_tstamp) > DATEADD(DAY,-121,GETDATE()))
  74. --------------------
  75. --end_with_statement
  76. --------------------
  77. SELECT A.*, B.resource_coin_value, A.resource_cnt*B.resource_coin_value AS total_coins_value FROM
  78. ((SELECT
  79. DATE(derived_tstamp) interval_date
  80. ,CASE
  81.     WHEN trophies_cnt < 800 THEN '800'
  82.     WHEN CURRENT_ARENA_INDEX<=13 THEN 'Studios'
  83.     WHEN CURRENT_ARENA_INDEX<=22 THEN 'Master_League'
  84.     WHEN CURRENT_ARENA_INDEX>=23 THEN 'Legends_League'
  85.  END league
  86. , CASE
  87.     WHEN trophies_cnt < 125 THEN '0-125'
  88.     WHEN trophies_cnt < 1400 THEN '125-1400'
  89.     WHEN trophies_cnt < 2000 THEN '1400-2000'
  90.     WHEN trophies_cnt < 3800 THEN '2000-3800'
  91.     WHEN trophies_cnt < 7000 THEN '3800-7000'
  92.     WHEN trophies_cnt < 16000 THEN '7000-16000'
  93.     WHEN trophies_cnt < 30000 THEN '16000-30000'
  94.     WHEN trophies_cnt >= 30000 THEN '30000+'
  95.   END AS trophy_group
  96. , CASE
  97.     WHEN lt_purchases_amt > 0 THEN 'paying_users'
  98.     WHEN lt_purchases_amt = 0 THEN 'not_paying_users'
  99. END Paying_users
  100. , LTV_group
  101. , LO_event_type
  102. , event_type
  103. , is_received_resource
  104. , transaction_type
  105. , transaction_source_lvl_0
  106. , transaction_source
  107. , is_bargain
  108. , match_type
  109. , match_type_id
  110. , match_mode_type
  111. , resource_type
  112. , resource_sub_type
  113. , resource_id
  114. , resource_version
  115. , SUM(resource_cnt) resource_cnt
  116. FROM DATA
  117. GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
  118. ) A
  119.  
  120. LEFT JOIN
  121.  
  122. (SELECT resource_name, resource_version, resource_sub_type, resource_coin_value  FROM (SELECT * FROM
  123. (SELECT *, ROW_NUMBER() OVER (partition BY resource_name, resource_version ORDER BY db_create_date DESC, resource_id DESC) AS resource_rank
  124.   FROM candivore.prod.DIM_RESOURCE_VERSION)
  125.   WHERE resource_rank = 1)) B
  126. ON A.resource_id = B.resource_name AND A.resource_version = B.resource_version AND A.resource_sub_type = B.resource_sub_type)
  127.  
  128.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement