From 71cf8ad2736c49de1fa97026e35d95091bd27806 Mon Sep 17 00:00:00 2001 From: Anna Saiapina Date: Thu, 21 Nov 2024 15:13:25 +0000 Subject: [PATCH] Add filter for only actual records in csc --- definitions/staging/stg_csc_agent.sqlx | 77 +++++++++++++++----------- 1 file changed, 44 insertions(+), 33 deletions(-) diff --git a/definitions/staging/stg_csc_agent.sqlx b/definitions/staging/stg_csc_agent.sqlx index 42c9ad0..f20163e 100644 --- a/definitions/staging/stg_csc_agent.sqlx +++ b/definitions/staging/stg_csc_agent.sqlx @@ -17,36 +17,47 @@ select *, OVER (PARTITION BY UPDATE_USER, CONFIRMATION_NO, CHANGE_DATE, UPDATE_TYPE) row_number from ${ref("pphe_five9_raw","csc_rev_changes_*")} -${ when(incremental(), `where _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d',current_date("Europe/Amsterdam"))`) }) --last date table is taken -select cr.RESORT, - cr.MARKET_CODE, - cr.MARKET_DESC, - cr.CONFIRMATION_NO, - cr.RESV_STATUS, - ms.RESV_STATUS_ID, - cr.ARRIVAL, - cr.DEPARTURE, - cr.UPDATE_USER, - ca.AGENT_ID, - case - when date(safe_cast(cr.CHANGE_DATE as timestamp)) >= ca.CSC_START_DATE and - date(safe_cast(cr.CHANGE_DATE as timestamp)) <= ca.CSC_END_DATE - then 'Y' - else 'N' - end as CSC_AGENT_YN, - cr.CHANGE_DATE, - date(safe_cast(cr.CHANGE_DATE as timestamp)) DATE, - extract(hour from safe_cast(cr.CHANGE_DATE as timestamp)) HOUR, - cr.UPDATE_TYPE, - mu.UPDATE_TYPE_ID, - 1 as COUNTER -from csc_rev_deduplicated cr -left join ${ref("pphe_five9_stg","stg_MAPPING_CSC_AGENT")} ca -on cr.UPDATE_USER=ca.OPERA_UPDATE_USER -left join ${ref("pphe_five9_stg","stg_MAPPING_RESV_STATUS")} ms -on cr.RESV_STATUS=ms.RESV_STATUS -left join ${ref("pphe_five9_stg","stg_MAPPING_UPDATE_TYPE")} mu -on cr.UPDATE_TYPE=mu.UPDATE_TYPE -where row_number = 1 -and cr.UPDATE_USER is not null -and ca.AGENT_ID is not null +${ when(incremental(), `where _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d',current_date("Europe/Amsterdam"))`) }), --last date table is taken +csc_agent as ( + select cr.RESORT, + cr.MARKET_CODE, + cr.MARKET_DESC, + cr.CONFIRMATION_NO, + cr.RESV_STATUS, + ms.RESV_STATUS_ID, + cr.ARRIVAL, + cr.DEPARTURE, + cr.UPDATE_USER, + ca.AGENT_ID, + case + when date(safe_cast(cr.CHANGE_DATE as timestamp)) >= ca.CSC_START_DATE and + date(safe_cast(cr.CHANGE_DATE as timestamp)) <= ca.CSC_END_DATE + then 'Y' + else 'N' + end as CSC_AGENT_YN, + cr.CHANGE_DATE, + date(safe_cast(cr.CHANGE_DATE as timestamp)) DATE, + extract(hour from safe_cast(cr.CHANGE_DATE as timestamp)) HOUR, + cr.UPDATE_TYPE, + mu.UPDATE_TYPE_ID, + 1 as COUNTER, + from csc_rev_deduplicated cr + left join ${ref("pphe_five9_stg","stg_MAPPING_CSC_AGENT")} ca + on cr.UPDATE_USER=ca.OPERA_UPDATE_USER + left join ${ref("pphe_five9_stg","stg_MAPPING_RESV_STATUS")} ms + on cr.RESV_STATUS=ms.RESV_STATUS + left join ${ref("pphe_five9_stg","stg_MAPPING_UPDATE_TYPE")} mu + on cr.UPDATE_TYPE=mu.UPDATE_TYPE + where row_number = 1 + and cr.UPDATE_USER is not null + and ca.AGENT_ID is not null +), +act_recs as ( + select *, + ROW_NUMBER() + OVER (PARTITION BY UPDATE_USER, CONFIRMATION_NO, CHANGE_DATE, UPDATE_TYPE order by CSC_AGENT_YN desc) + act + from csc_agent +) +select * from act_recs +where act = 1