Advertisement
YuvalGai

Untitled

Mar 12th, 2024
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.16 KB | None | 0 0
  1. select
  2. distinct u.DT AS INTERVAL_DATE,
  3. TIMESTAMP_FROM_PARTS(YEAR(u.DT), MONTH(u.DT), DAY(u.DT), 0, 0, 0) AS INTERVAL_DATE_TIME,
  4. u.arena_group,
  5. u.seniority_bin,
  6. u.ltv_group,
  7. u.engagement_group,
  8. u.is_subscriber,
  9. u.subscription_tier,
  10. d.DAU,
  11. u.PLAYERS,
  12. d.SESSIONS,
  13. u.MATCH_SESSIONS,
  14. u.MATCHES,
  15. u.on_fire_matches,
  16. u.ACTIVE_PAYERS,
  17. u.wins,
  18. u.total_match_score,
  19. u.total_ON_FIRE_GAME,
  20. u.total_REACHED_ON_FIRE,
  21. u.total_COINS_WON_AMT,
  22. u.total_TROPHIES_WON_AMT,
  23. u.total_match_duration_mins
  24. from
  25. (
  26. select
  27. dt,
  28. arena_group,
  29. ltv_group,
  30. engagement_group,
  31. payers_segment,
  32. is_subscriber,
  33. SUBSCRIPTION_TIER,
  34. seniority_bin,
  35. CASE
  36. WHEN trophies_cnt < 1500 THEN '0-1500'
  37. WHEN trophies_cnt < 3800 THEN '1500-3800'
  38. WHEN trophies_cnt < 8000 THEN '3800-8000'
  39. WHEN trophies_cnt < 17000 THEN '8000-17000'
  40. WHEN trophies_cnt < 30000 THEN '17000-30000'
  41. ELSE '30000+'
  42. END AS trophy_group,
  43. count(distinct user_id) as PLAYERS,
  44. count(distinct concat(match_id, user_id, rematch_cnt)) as MATCHES,
  45. COUNT(DISTINCT MATCH_SESSION_ID) AS MATCH_SESSIONS,
  46. sum(IS_ON_FIRE_GAME) as on_fire_matches,
  47. sum(
  48. case
  49. when is_payer = 1 then 1
  50. else 0
  51. end
  52. ) as ACTIVE_PAYERS,
  53. sum(is_won) as wins,
  54. sum(MATCH_SCORE) as total_match_score,
  55. sum(IS_ON_FIRE_GAME) as total_ON_FIRE_GAME,
  56. sum(IS_REACHED_ON_FIRE) as total_REACHED_ON_FIRE,
  57. sum(COINS_WON_AMT) as total_COINS_WON_AMT,
  58. sum(TROPHIES_WON_AMT) as total_TROPHIES_WON_AMT,
  59. sum(match_duration_sec) / 60 as total_match_duration_mins
  60. from
  61. (
  62. select
  63. m.MATCH_END_DATE AS DT,
  64. m.EVENT_ID,
  65. m.DERIVED_TSTAMP,
  66. m.MATCH_END_DATE,
  67. m.MATCH_SESSION_ID,
  68. s.SENIORITY_BIN,
  69. s.LTV_GROUP,
  70. s.trophies_cnt
  71. case
  72. when s.LTV_GROUP != '0' then 1
  73. else 0
  74. end as is_payer,
  75. s.ENGAGEMENT_GROUP,
  76. s.ARENA_GROUP,
  77. s.IS_SUBSCRIBER,
  78. s.SUBSCRIPTION_TIER,
  79. s.payers_segment,
  80. m.USER_ID,
  81. m.MATCH_ID,
  82. m.REMATCH_CNT,
  83. m.pvp_mode,
  84. m.MATCH_TYPE_ID,
  85. m.MATCH_TYPE,
  86. m.MATCH_SUB_TYPE,
  87. m.MATCH_MODE,
  88. m.MODIFIER_1,
  89. m.MODIFIER_2,
  90. m.CALENDAR_ENTRY_ID,
  91. m.ORIGINAL_CALENDAR_ENTRY_ID,
  92. m.DYNAMIC_CONFIG_ID,
  93. m.CONFIG_ID,
  94. m.LO_EVENT_ID,
  95. m.LEADERBOARD_CONFIG_TYPE,
  96. m.EVENT_SEGMENT,
  97. m.EVENT_SEGMENT_LOGIC,
  98. m.IS_PUSH_NOTIFICATION_ENABLE,
  99. m.IS_RANKED,
  100. m.TOURNAMENT_UI_ORDER,
  101. m.TOURNAMENT_SIZE,
  102. m.TOURNAMENT_ENTRY_COIN_PRICE,
  103. m.TOURNAMENT_MN_BOOSTER_RARITY,
  104. m.TOURNAMENT_MX_BOOSTER_RARITY,
  105. m.match_rank,
  106. m.elimination_round,
  107. m.BOOSTER_TIER_ID,
  108. m.BOOSTER_TIER,
  109. m.RESOURCE_TYPE_ID,
  110. m.RESOURCE_TYPE,
  111. m.RESOURCE_SUB_TYPE_ID,
  112. m.RESOURCE_SUB_TYPE,
  113. m.RESOURCE_ID,
  114. m.BOOSTER_NAME,
  115. m.BOOSTER_RESOURCE_VERSION,
  116. m.BOOSTER_VALUE,
  117. m.LO_EVENT_TYPE,
  118. m.LO_EVENT_CONFIG_ID,
  119. m.match_duration_sec,
  120. m.IS_WON,
  121. m.MATCH_SCORE,
  122. m.IS_ON_FIRE_GAME,
  123. m.IS_REACHED_ON_FIRE,
  124. m.COINS_WON_AMT,
  125. m.TROPHIES_WON_AMT
  126. FROM
  127. CANDIVORE.PROD.F_USER_MATCH M
  128. left join candivore.prod.daily_users_from_params S on (m.user_id = s.user_id and m.MATCH_END_DATE = s.interval_date)
  129. where
  130. is_bot = false
  131. and m.MATCH_END_DATE = dateadd(day, -1, date(current_date()))
  132. and m.MATCH_END_DATE > (
  133. select
  134. max(interval_date)
  135. from
  136. candivore.semantic_layer.T_ENGAGEMENT_DASHBOARD
  137. )
  138. )
  139. group by
  140. 1,
  141. 2,
  142. 3,
  143. 4,
  144. 5,
  145. 6,
  146. 7,
  147. 8,
  148. 9
  149. ) U
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156. left join (
  157. select
  158. interval_Date
  159. ,engagement_group
  160. ,arena_group
  161. ,seniority_bin
  162. ,ltv_group
  163. ,is_subscriber
  164. ,subscription_tier
  165. ,payers_segment
  166. ,CASE
  167. WHEN trophies_cnt < 1500 THEN '0-1500'
  168. WHEN trophies_cnt < 3800 THEN '1500-3800'
  169. WHEN trophies_cnt < 8000 THEN '3800-8000'
  170. WHEN trophies_cnt < 17000 THEN '8000-17000'
  171. WHEN trophies_cnt < 30000 THEN '17000-30000'
  172. ELSE '30000+'
  173. END AS trophy_group
  174. ,count(distinct user_id) DAU
  175. ,sum(sessions) Sessions
  176. from candivore.prod.daily_users_from_params where interval_date = dateadd(day, -1, date(current_date()))
  177. ) D on (
  178. u.DT = d.interval_Date
  179. and u.ARENA_GROUP = d.ARENA_GROUP
  180. and u.ENGAGEMENT_GROUP = d.ENGAGEMENT_GROUP
  181. and u.SENIORITY_BIN = d.SENIORITY_BIN
  182. and u.LTV_GROUP = d.LTV_GROUP
  183. and u.payers_segment = d.payers_segment
  184. and u.trophy_group = d.trophy_group
  185. and case
  186. when u.is_subscriber = true then u.subscription_tier = d.subscription_tier
  187. else u.is_subscriber = d.is_subscriber
  188. end
  189.  
  190.  
  191. ;
  192. select
  193. *
  194. from
  195. STAGING.TRANSFORM_TABLES.DAU order by dt desc limit 10
  196.  
  197. select
  198. interval_Date
  199. ,engagement_group
  200. ,arena_group
  201. ,seniority_bin
  202. ,ltv_group
  203. ,is_subscriber
  204. ,subscription_tier
  205. ,payers_segment
  206. ,CASE
  207. WHEN trophies_cnt < 1500 THEN '0-1500'
  208. WHEN trophies_cnt < 3800 THEN '1500-3800'
  209. WHEN trophies_cnt < 8000 THEN '3800-8000'
  210. WHEN trophies_cnt < 17000 THEN '8000-17000'
  211. WHEN trophies_cnt < 30000 THEN '17000-30000'
  212. ELSE '30000+'
  213. END AS trophy_group
  214. ,count(distinct user_id) DAU
  215. ,sum(sessions) Sessions
  216. from candivore.prod.daily_users_from_params where interval_date = dateadd(day, -1, date(current_date()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement