Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- t_earn_spent_light = {
- '01_truncate_transformation_table': '''
- truncate MATCH_MASTERS.TRANSFORMATION.TRANS_EARN_SPENT_LIGHT
- ''',
- '02_set_last_update_variable': '''
- set FROM_EARN_SPENT_LIGHT_UPDATED_DT_MNG = (
- SELECT
- date(
- NVL(max(LAST_LOAD_DATE), to_timestamp('2023-01-01'))
- ) as LAST_UPDATED_DT_MNG
- FROM
- MATCH_MASTERS.manage.management_table
- WHERE
- 1 = 1
- AND table_name = 'CANDIVORE.SEMANTIC_LAYER.T_EARN_SPENT_LIGHT'
- ORDER BY
- ID DESC
- LIMIT
- 1
- );
- ''',
- '03_set_to_update_variable': '''
- set TO_EARN_SPENT_LIGHT_PARAMS_UPDATED_DT_MNG = (
- SELECT DATEADD(day,-1,current_date())
- );''',
- '04_insert_delta_into_trans_table': '''
- INSERT INTO MATCH_MASTERS.TRANSFORMATION.TRANS_EARN_SPENT_LIGHT (
- INTERVAL_DATE
- ,LEAGUE
- ,TROPHY_GROUP
- ,payers_segment
- ,LTV_GROUP
- ,LO_EVENT_TYPE
- ,EVENT_TYPE
- ,IS_RECEIVED_RESOURCE
- ,TRANSACTION_TYPE
- ,TRANSACTION_SOURCE_LVL_0
- ,TRANSACTION_SOURCE
- ,IS_BARGAIN
- ,MATCH_TYPE
- ,transaction_source_with_match_type
- ,MATCH_TYPE_ID
- ,MATCH_MODE_TYPE
- ,RESOURCE_TYPE
- ,RESOURCE_SUB_TYPE
- ,RESOURCE_ID
- ,RESOURCE_VERSION
- ,STAKES_MULTIPLIER
- ,RESOURCE_CNT
- ,RESOURCE_COIN_VALUE
- ,TOTAL_COINS_VALUE
- ,LAST_UPDATED_DT
- ,DW_INSERT_DT
- )
- WITH DATA AS (
- SELECT
- A.*,
- CASE
- WHEN is_usd_paid = TRUE THEN 'Paid'
- WHEN is_coin_paid = TRUE THEN 'Coin Paid'
- ELSE 'Unpayed'
- END AS transaction_type,
- transaction_sub_source transaction_source_lvl_0,
- CASE
- 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'
- OR transaction_source = 'spin_chest'
- OR transaction_source = 'super_spin'
- OR transaction_source LIKE '%donation%'
- OR transaction_source = 'tickets_pack' THEN TRUE
- ELSE FALSE
- END AS is_bargain,
- match_type,
- nvl(match_type,transaction_source) transaction_source_with_match_type,
- payers_segment
- FROM
- MATCH_MASTERS.PROD.f_user_resource_transaction a
- left join
- (select user_id,interval_date,payers_segment from MATCH_MASTERS.prod.daily_users_from_params where interval_date between DATEADD(DAY, -1, $FROM_EARN_SPENT_LIGHT_UPDATED_DT_MNG) and $TO_EARN_SPENT_LIGHT_PARAMS_UPDATED_DT_MNG) B
- on A.user_id = B.user_id and A.transaction_date = B.interval_date
- WHERE
- DATE(derived_tstamp) between DATEADD(DAY, -1, $FROM_EARN_SPENT_LIGHT_UPDATED_DT_MNG) and $TO_EARN_SPENT_LIGHT_PARAMS_UPDATED_DT_MNG
- )
- --------------------
- --end_with_statement
- --------------------
- SELECT
- A.INTERVAL_DATE
- ,A.LEAGUE
- ,A.TROPHY_GROUP
- ,A.payers_segment
- ,A.LTV_GROUP
- ,A.LO_EVENT_TYPE
- ,A.EVENT_TYPE
- ,A.IS_RECEIVED_RESOURCE
- ,A.TRANSACTION_TYPE
- ,A.TRANSACTION_SOURCE_LVL_0
- ,A.TRANSACTION_SOURCE
- ,A.IS_BARGAIN
- ,A.MATCH_TYPE
- ,A.transaction_source_with_match_type
- ,A.MATCH_TYPE_ID
- ,A.MATCH_MODE_TYPE
- ,A.RESOURCE_TYPE
- ,A.RESOURCE_SUB_TYPE
- ,A.RESOURCE_ID
- ,A.RESOURCE_VERSION
- ,A.STAKES_MULTIPLIER
- ,A.RESOURCE_CNT
- ,A.resource_coin_value_calculated resource_coin_value
- ,A.resource_cnt * A.resource_coin_value_calculated AS total_coins_value
- ,A.INTERVAL_DATE as LAST_UPDATED_DT
- ,current_timestamp() as DW_INSERT_DT
- FROM
- (
- SELECT
- DATE(derived_tstamp) interval_date
- ,CASE
- WHEN trophies_cnt < 800 THEN '800'
- WHEN trophies_cnt < 3800 THEN 'Studios'
- WHEN trophies_cnt < 30000 THEN 'Master_League'
- WHEN trophies_cnt >= 30000 THEN 'Legends_League'
- END league,
- CASE
- WHEN trophies_cnt < 1500 THEN '0-1500'
- WHEN trophies_cnt < 3800 THEN '1500-3800'
- WHEN trophies_cnt < 8000 THEN '3800-8000'
- WHEN trophies_cnt < 17000 THEN '8000-17000'
- WHEN trophies_cnt < 30000 THEN '17000-30000'
- ELSE '30000+'
- END AS trophy_group,
- payers_segment,
- LTV_group,
- LO_EVENT_TYPE_config LO_EVENT_TYPE,
- event_type,
- is_received_resource,
- transaction_type,
- transaction_source_lvl_0,
- transaction_source,
- is_bargain,
- match_type,
- transaction_source_with_match_type,
- match_type_id,
- match_mode_type,
- resource_type,
- resource_sub_type,
- resource_id,
- resource_version,
- NVL(STAKES_MULTIPLIER, 1) AS STAKES_MULTIPLIER,
- resource_coin_value_calculated,
- SUM(resource_cnt) resource_cnt
- FROM
- DATA
- GROUP BY all
- ) A
- WHERE 1=1
- AND A.interval_date between DATEADD(DAY, -1, $FROM_EARN_SPENT_LIGHT_UPDATED_DT_MNG) and $TO_EARN_SPENT_LIGHT_PARAMS_UPDATED_DT_MNG
- ;
- ''',
- '05_set_merge_error_helper': '''
- ALTER SESSION SET ERROR_ON_NONDETERMINISTIC_MERGE = false;
- ''',
- '06_merge_temp_to_prod': '''
- MERGE INTO MATCH_MASTERS.SEMANTIC_LAYER.T_EARN_SPENT_LIGHT AS t
- USING MATCH_MASTERS.TRANSFORMATION.TRANS_EARN_SPENT_LIGHT AS S
- ON s.INTERVAL_DATE = t.INTERVAL_DATE
- AND s.LEAGUE = t.LEAGUE
- AND s.TROPHY_GROUP = t.TROPHY_GROUP
- AND (s.payers_segment = t.payers_segment OR (s.payers_segment IS NULL AND t.payers_segment IS NULL ) )
- AND s.LTV_GROUP = t.LTV_GROUP
- AND (s.LO_EVENT_TYPE = t.LO_EVENT_TYPE OR (s.LO_EVENT_TYPE IS NULL AND t.LO_EVENT_TYPE IS NULL ) )
- AND (s.EVENT_TYPE = t.EVENT_TYPE OR (s.EVENT_TYPE IS NULL AND t.EVENT_TYPE IS NULL ) )
- AND s.IS_RECEIVED_RESOURCE = t.IS_RECEIVED_RESOURCE
- AND s.TRANSACTION_TYPE = t.TRANSACTION_TYPE
- AND s.TRANSACTION_SOURCE = t.TRANSACTION_SOURCE
- AND (s.MATCH_TYPE = t.MATCH_TYPE OR (s.MATCH_TYPE IS NULL AND t.MATCH_TYPE IS NULL ) )
- AND (s.transaction_source_with_match_type = t.transaction_source_with_match_type or (s.transaction_source_with_match_type is null and t.transaction_source_with_match_type is null))
- AND s.MATCH_TYPE_ID = t.MATCH_TYPE_ID
- AND (s.MATCH_MODE_TYPE = t.MATCH_MODE_TYPE OR (s.MATCH_MODE_TYPE IS NULL AND t.MATCH_MODE_TYPE IS NULL ) )
- AND s.RESOURCE_TYPE = t.RESOURCE_TYPE
- AND s.RESOURCE_SUB_TYPE = t.RESOURCE_SUB_TYPE
- AND s.RESOURCE_ID = t.RESOURCE_ID
- AND s.RESOURCE_VERSION = t.RESOURCE_VERSION
- AND s.STAKES_MULTIPLIER = t.STAKES_MULTIPLIER
- AND t.INTERVAL_DATE > DATEADD(DAY, -7, $FROM_EARN_SPENT_LIGHT_UPDATED_DT_MNG)
- WHEN MATCHED THEN UPDATE SET
- t.INTERVAL_DATE = s.INTERVAL_DATE
- ,t.LEAGUE = s.LEAGUE
- ,t.TROPHY_GROUP = s.TROPHY_GROUP
- ,t.payers_segment = s.payers_segment
- ,t.LTV_GROUP = s.LTV_GROUP
- ,t.LO_EVENT_TYPE = s.LO_EVENT_TYPE
- ,t.EVENT_TYPE = s.EVENT_TYPE
- ,t.IS_RECEIVED_RESOURCE = s.IS_RECEIVED_RESOURCE
- ,t.TRANSACTION_TYPE = s.TRANSACTION_TYPE
- ,t.TRANSACTION_SOURCE_LVL_0 = s.TRANSACTION_SOURCE_LVL_0
- ,t.TRANSACTION_SOURCE = s.TRANSACTION_SOURCE
- ,t.IS_BARGAIN = s.IS_BARGAIN
- ,t.MATCH_TYPE = s.MATCH_TYPE
- ,t.transaction_source_with_match_type = s.transaction_source_with_match_type
- ,t.MATCH_TYPE_ID = s.MATCH_TYPE_ID
- ,t.MATCH_MODE_TYPE = s.MATCH_MODE_TYPE
- ,t.RESOURCE_TYPE = s.RESOURCE_TYPE
- ,t.RESOURCE_SUB_TYPE = s.RESOURCE_SUB_TYPE
- ,t.RESOURCE_ID = s.RESOURCE_ID
- ,t.RESOURCE_VERSION = s.RESOURCE_VERSION
- ,t.STAKES_MULTIPLIER = s.STAKES_MULTIPLIER
- ,t.RESOURCE_CNT = s.RESOURCE_CNT
- ,t.RESOURCE_COIN_VALUE = s.RESOURCE_COIN_VALUE
- ,t.TOTAL_COINS_VALUE = s.TOTAL_COINS_VALUE
- ,t.LAST_UPDATED_DT = s.LAST_UPDATED_DT
- ,t.DW_INSERT_DT = s.DW_INSERT_DT
- WHEN NOT MATCHED THEN INSERT (
- INTERVAL_DATE
- ,LEAGUE
- ,TROPHY_GROUP
- ,payers_segment
- ,LTV_GROUP
- ,LO_EVENT_TYPE
- ,EVENT_TYPE
- ,IS_RECEIVED_RESOURCE
- ,TRANSACTION_TYPE
- ,TRANSACTION_SOURCE_LVL_0
- ,TRANSACTION_SOURCE
- ,IS_BARGAIN
- ,MATCH_TYPE
- ,transaction_source_with_match_type
- ,MATCH_TYPE_ID
- ,MATCH_MODE_TYPE
- ,RESOURCE_TYPE
- ,RESOURCE_SUB_TYPE
- ,RESOURCE_ID
- ,RESOURCE_VERSION
- ,STAKES_MULTIPLIER
- ,RESOURCE_CNT
- ,RESOURCE_COIN_VALUE
- ,TOTAL_COINS_VALUE
- ,LAST_UPDATED_DT
- ,DW_INSERT_DT
- )
- VALUES (
- s.INTERVAL_DATE
- ,s.LEAGUE
- ,s.TROPHY_GROUP
- ,s.payers_segment
- ,s.LTV_GROUP
- ,s.LO_EVENT_TYPE
- ,s.EVENT_TYPE
- ,s.IS_RECEIVED_RESOURCE
- ,s.TRANSACTION_TYPE
- ,s.TRANSACTION_SOURCE_LVL_0
- ,s.TRANSACTION_SOURCE
- ,s.IS_BARGAIN
- ,s.MATCH_TYPE
- ,s.transaction_source_with_match_type
- ,s.MATCH_TYPE_ID
- ,s.MATCH_MODE_TYPE
- ,s.RESOURCE_TYPE
- ,s.RESOURCE_SUB_TYPE
- ,s.RESOURCE_ID
- ,s.RESOURCE_VERSION
- ,s.STAKES_MULTIPLIER
- ,s.RESOURCE_CNT
- ,s.RESOURCE_COIN_VALUE
- ,s.TOTAL_COINS_VALUE
- ,s.LAST_UPDATED_DT
- ,s.DW_INSERT_DT
- )
- ;
- ''',
- '07_update_mng_table': '''
- INSERT INTO MATCH_MASTERS.MANAGE.MANAGEMENT_TABLE(
- TABLE_NAME
- ,DW_INSERT_DATE
- ,LAST_LOAD_DATE
- ,ROWS_LOADED
- ) VALUES (
- 'CANDIVORE.SEMANTIC_LAYER.T_EARN_SPENT_LIGHT'
- ,current_timestamp()
- ,(select max(LAST_UPDATED_DT) from MATCH_MASTERS.TRANSFORMATION.TRANS_EARN_SPENT_LIGHT)
- ,(select count(*) from MATCH_MASTERS.TRANSFORMATION.TRANS_EARN_SPENT_LIGHT)
- )
- '''
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement