Advertisement
YuvalGai

Untitled

May 9th, 2023 (edited)
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.73 KB | None | 0 0
  1. CREATE OR REPLACE VIEW SNOWPLOW.DERIVED."v_INTERVAL_SESSION_INVENTORY_TYPE"(
  2.     USER_ID,
  3.     INTERVAL_DATE_TIME,
  4.     LAST_SESSION_ID,
  5.     RESOURCE_TYPE,
  6.     RESOURCE_TYPE_ID,
  7.     RESOURCE_STATUS,
  8.     LTV_GROUP,
  9.     SENIORITY_BIN,
  10.     ENGAGEMENT_GROUP,
  11.     ARENA_GROUP,
  12.     TROPHY_GROUP,
  13.     START_SESSION_RESOURCE_COUNT
  14. ) AS
  15.  
  16.  
  17. SELECT user_id
  18.         , interval_date_time
  19.         , last_session_id
  20.         , Resource_Type
  21.         -- , case when Resource_Type = 'OnFire' then Resource_Name_Id else Resource_Type end as    Resource_Type
  22.         , Resource_Type_Id
  23.         -- , Resource_Sub_Type
  24.         -- , Resource_Sub_Type_Id
  25.         -- , Booster_Tier_Group
  26.         -- , Booster_Tier_Group_Id
  27.         , Resource_Status
  28.         , LTV_Group
  29.         ,Seniority_Bin
  30.         ,Engagement_Group
  31.         ,Arena_Group
  32.         ,Trophy_Group
  33.         ,SUM(CASE WHEN Resource_Name_Id = 'OnFireTime' THEN Start_Session_Resource_Count/3600 ELSE  Start_Session_Resource_Count END) AS Start_Session_Resource_Count
  34. FROM (SELECT
  35.      I.User_Id
  36.     ,S.Interval_Date_Time
  37.     ,S.Last_Session_Id
  38.     ,IFNULL(R.Resource_Type_Id,-1) AS Resource_Type_Id
  39.     ,IFNULL(R.Resource_Type,'None') AS Resource_Type                                           
  40.     -- ,IFNULL(case when I.Resource_Name = 'AlbumPage' then 'AlbumPage'
  41.     --            when R.Resource_Type = 'Sticker' then concat(I.Resource_Status,R.Resource_Type)
  42.     --            when R.Resource_Type = 'OnFire' then I.Resource_Name
  43.     --            when R.Resource_Type = 'Ticket' then I.Resource_Name
  44.     --            else R.Resource_Type end,'None') as Resource_Type
  45.     -- ,IFNULL(R.Resource_Sub_Type_Id,-1) as Resource_Sub_Type_Id
  46.     -- ,IFNULL(R.Resource_Sub_Type,'None') as Resource_Sub_Type
  47.     -- ,IFNULL(R.Resource_Id,-1) as Resource_Id
  48.     ,I.Resource_Name AS Resource_Name_Id
  49.     -- ,IFNULL(R.Resource_Display_Name,I.Resource_Name) as Resource_Display_Name
  50.     -- , I.Resource_Name
  51.     -- , R.Resource_Name
  52.     -- ,IFNULL(R.Booster_Tier_Group,-1) as Booster_Tier_Group_Id
  53.     -- ,IFNULL(R.Booster_Tier_Group_Name,'None') as Booster_Tier_Group
  54.     ,INITCAP(I.Resource_Status) AS Resource_Status
  55.     ,I.Start_Session_Resource_CNT AS Start_Session_Resource_Count
  56.     ,S.LTV_Group
  57.     -- ,S.Seniority
  58.     ,S.Seniority_Bin
  59.     ,S.Engagement_Group
  60.     -- ,S.Is_Payer
  61.     -- ,S.Arena_Index,
  62.     ,S.Arena_Group
  63.     ,CASE
  64.     WHEN S.arena_index <=1 THEN '0-125'
  65.     WHEN S.arena_index <=6 THEN '125-1400'
  66.     WHEN S.arena_index <=8 THEN '1400-2000'
  67.     WHEN S.arena_index <=13 THEN '2000-3800'
  68.     WHEN S.arena_index <=16 THEN '3800-7000'
  69.     WHEN S.arena_index <=19 THEN '7000-16000'
  70.     WHEN S.arena_index <=22 THEN '16000-30000'
  71.     WHEN S.arena_index >=23 THEN '30000+'
  72. END trophy_group
  73. FROM SNOWPLOW.DERIVED.USER_SESSION_INVENTORY I
  74. INNER JOIN SNOWPLOW.DERIVED.INTERVAL_LAST_SESSION_PER_USER S
  75.         ON (S.USER_ID = I.USER_ID AND I.SESSION_ID = S.Last_Session_Id )
  76. LEFT JOIN (
  77.     SELECT
  78.          Resource_Id
  79.         ,Resource_Name
  80.         ,Resource_Display_Name
  81.         ,Resource_Type_Id
  82.         ,Resource_Type
  83.         ,Resource_Sub_Type_Id
  84.         ,Resource_Sub_Type
  85.         ,Booster_Tier_Group
  86.         ,Booster_Tier_Group_Name
  87.         ,ROW_NUMBER() OVER (PARTITION BY Resource_Name, Resource_Type ORDER BY Resource_Version DESC) AS RN
  88.     FROM SNOWPLOW.DERIVED.DIM_RESOURCE_VERSION
  89.     WHERE (resource_UI_order > -1 OR resource_UI_order IS NULL)
  90.     ) R ON (LOWER(I.Resource_Name) = LOWER(R.Resource_Name) AND R.RN = 1 AND LOWER(ifnull(I.RESOURCE_TYPE,'n/a')) = LOWER(ifnull(R.RESOURCE_TYPE,'n/a')))
  91. WHERE CASE WHEN R.Resource_Type != 'OnFire' THEN Start_Session_Resource_Count > 0 ELSE Start_Session_Resource_Count>=0 END AND Resource_Name_Id NOT IN ('Nuke','TapTime')
  92. AND R.Resource_Type != 'None' )
  93. GROUP BY 1,2,3,4,5,6,7,8,9,10,11 ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement