Advertisement
YuvalGai

Untitled

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