Advertisement
YuvalGai

Untitled

Jul 23rd, 2023
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.40 KB | None | 0 0
  1. SELECT
  2. A.*,
  3. B.lo_event_id,
  4. B.lo_event_min_trophies,
  5. B.lo_event_max_trophies,
  6. B.calendar_order,
  7. B.lo_visible_on_homescreen,
  8. B.lo_entry_tickets_required
  9. FROM
  10. (
  11. SELECT
  12. DISTINCT match_end_date AS INTERVAL_DATE,
  13. arena_group,
  14. CASE WHEN trophies_cnt < 125 THEN '0-125' WHEN trophies_cnt < 1400 THEN '125-1400' WHEN trophies_cnt < 2000 THEN '1400-2000' WHEN trophies_cnt < 3800 THEN '2000-3800' WHEN trophies_cnt < 7000 THEN '3800-7000' WHEN trophies_cnt < 16000 THEN '7000-16000' WHEN trophies_cnt < 30000 THEN '16000-30000' WHEN trophies_cnt >= 30000 THEN '30000+' END AS trophy_group,
  15. CASE
  16. WHEN trophies_cnt < 125 THEN '0-125'
  17. WHEN trophies_cnt < 1400 THEN '125-1400'
  18. WHEN trophies_cnt < 2000 THEN '1400-2000'
  19. WHEN trophies_cnt < 3800 THEN '2000-3800'
  20. WHEN trophies_cnt < 4500 THEN '3800-4500'
  21. WHEN trophies_cnt < 5500 THEN '4500-5500'
  22. WHEN trophies_cnt < 7000 THEN '5500-7000'
  23. WHEN trophies_cnt < 10000 THEN '7000-10000'
  24. WHEN trophies_cnt < 13000 THEN '10000-13000'
  25. WHEN trophies_cnt < 16000 THEN '13000-16000'
  26. WHEN trophies_cnt < 20000 THEN '16000-20000'
  27. WHEN trophies_cnt < 30000 THEN '20000-30000'
  28. WHEN trophies_cnt >= 30000 THEN '30000+'
  29. END AS trophy_group_2,
  30. ltv_group,
  31. NULL AS engagement_group,
  32. is_payer,
  33. NULL AS is_subscriber,
  34. NULL AS SUBSCRIPTION_TIER,
  35. NULL AS seniority_bin,
  36. pvp_mode,
  37. MATCH_TYPE_ID,
  38. CASE WHEN is_random_mixer = TRUE THEN 'Daily_Random_Mixer' ELSE match_type END AS MATCH_TYPE,
  39. MATCH_MODE,
  40. MODIFIER_1,
  41. MODIFIER_2,
  42. match_modifier_3,
  43. calendar_entry_id,
  44. concat(
  45. MATCH_SUB_TYPE,
  46. '-',
  47. MATCH_MODE,
  48. '+',
  49. MODIFIER_1,
  50. '-',
  51. MODIFIER_2,
  52. '-',
  53. match_modifier_3
  54. ) AS match_sub_type,
  55. RESOURCE_SUB_TYPE,
  56. BOOSTER_NAME,
  57. RIVAL_RESOURCE_SUB_TYPE,
  58. RUMBLE_SIZE,
  59. CASE WHEN PVP_MODE NOT LIKE 'PvP' THEN 'No Rival(Solo/Rumble)' ELSE RIVAL_BOOSTER_NAME END RIVAL_BOOSTER_NAME,
  60. rounds_cnt,
  61. is_private,
  62. is_rival_bot,
  63. turn_index,
  64. SUM(ROUNDS_CNT) AS ROUNDS,
  65. SUM(MATCH_SCORE) AS MATCH_SCORE,
  66. SUM(MATCH_DURATION_SEC) / 60 AS MATCH_DURATION_MINS,
  67. SUM(ABILITY_ACTIVATED_CNT) AS BOOSTER_ACTIVATIONS,
  68. SUM(ifnull(CS_RESYNCS, 0)) AS RESYNCS,
  69. COUNT(
  70. DISTINCT CASE WHEN CS_RESYNCS > 0 THEN concat(match_id, user_id, rematch_cnt) END
  71. ) AS RESYNC_MATCHES,
  72. SUM(ifnull(ERROR_RESYNCS, 0)) AS ERROR_RESYNCS,
  73. COUNT(
  74. DISTINCT CASE WHEN ERROR_RESYNCS > 0 THEN concat(match_id, user_id, rematch_cnt) END
  75. ) AS ERROR_RESYNC_MATCHES,
  76. SUM(
  77. CASE WHEN is_conceded = 1
  78. AND is_won = 0
  79. AND match_duration_sec = 0 THEN 1 END
  80. ) AS CONCEDED_MATCHES,
  81. SUM(
  82. CASE WHEN is_conceded = 1
  83. AND is_won = 0
  84. AND match_duration_sec BETWEEN 1
  85. AND 10 THEN 1 END
  86. ) AS CONCEDED_MATCHES_1_10,
  87. SUM(
  88. CASE WHEN is_conceded = 1
  89. AND is_won = 0
  90. AND match_duration_sec BETWEEN 10
  91. AND 60 THEN 1 END
  92. ) AS CONCEDED_MATCHES_10_60,
  93. SUM(
  94. CASE WHEN is_conceded = 1
  95. AND is_won = 0
  96. AND match_duration_sec > 60 THEN 1 END
  97. ) AS CONCEDED_MATCHES_AFTER_60sec,
  98. SUM(ifnull(rival_played_out_of_time, 0)) AS OOT,
  99. COUNT(
  100. DISTINCT CASE WHEN rival_played_out_of_time > 0 THEN concat(match_id, user_id, rematch_cnt) END
  101. ) AS OOT_MATCHES,
  102. COUNT(DISTINCT concat(match_id, user_id, rematch_cnt)) AS MATCHES,
  103. SUM(is_won) AS wins,
  104. AVG(MATCH_RANK) AS AVG_MATCH_RANK
  105. FROM
  106. CANDIVORE.PROD.F_USER_MATCH
  107. WHERE
  108. is_bot = FALSE
  109. AND MATCH_END_DATE > DATEADD(DAY, -61, GETDATE())
  110. GROUP BY
  111. 1,
  112. 2,
  113. 3,
  114. 4,
  115. 5,
  116. 6,
  117. 7,
  118. 8,
  119. 9,
  120. 10,
  121. 11,
  122. 12,
  123. 13,
  124. 14,
  125. 15,
  126. 16,
  127. 17,
  128. 18,
  129. 19,
  130. 20,
  131. 21,
  132. 22,
  133. 23,
  134. 24,
  135. 25,
  136. 26,
  137. 27,
  138. 28
  139. ) A
  140. LEFT JOIN (
  141. SELECT
  142. A.LO_ENTRY_ID,
  143. B.lo_event_id,
  144. A.interval_date,
  145. A.lo_entry_name,
  146. A.calendar_order,
  147. A.lo_visible_on_homescreen,
  148. CASE WHEN min0 IS NULL THEN min1 ELSE min0 END AS lo_event_min_trophies,
  149. CASE WHEN max0 IS NULL THEN max1 ELSE max0 END AS lo_event_max_trophies,
  150. lo_entry_tickets_required
  151. FROM
  152. (
  153. (
  154. SELECT
  155. LO_ENTRY_ID,
  156. DATE(derived_tstamp) interval_date,
  157. LO_ENTRY_NAME,
  158. calendar_order,
  159. lo_visible_on_homescreen,
  160. lo_entry_min_trophies min0,
  161. lo_entry_max_trophies max0,
  162. lo_entry_tickets_required
  163. FROM
  164. (SELECT * FROM (SELECT *,CASE WHEN lo_entry_ts IS NULL THEN lo_entry_update_ts ELSE lo_entry_ts END lo_entry_ts2,ROW_NUMBER() OVER (partition BY lo_entry_id ORDER BY lo_entry_ts2 DESC) rn FROM CANDIVORE.PROD.F_LIVEOPS_CALENDAR) WHERE rn = 1)
  165. ) A
  166. LEFT JOIN (
  167. SELECT
  168. DATE(derived_tstamp) AS interval_date,
  169. lo_event_id,
  170. lo_event_min_trophies AS min1,
  171. lo_event_max_trophies AS max1
  172. FROM
  173. CANDIVORE.PROD.DIM_EVENT_CONFIG
  174. ) B ON A.LO_ENTRY_NAME = B.LO_EVENT_ID
  175. )
  176. ) B ON A.calendar_entry_id = B.lo_entry_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement