From c5d3ce4a94e6d58246c1b9365f07f929ac467b98 Mon Sep 17 00:00:00 2001 From: Anna Saiapina Date: Tue, 27 Aug 2024 09:55:17 +0000 Subject: [PATCH] Update mapping joins to exclude NULL values from report tables --- .../staging/stg_calls_history_report.sqlx | 24 ++++++++++++------- definitions/staging/stg_calls_report.sqlx | 24 +++++++++++-------- .../staging/stg_digital_history_report.sqlx | 23 +++++++++++------- definitions/staging/stg_digital_report.sqlx | 23 +++++++++++------- 4 files changed, 59 insertions(+), 35 deletions(-) diff --git a/definitions/staging/stg_calls_history_report.sqlx b/definitions/staging/stg_calls_history_report.sqlx index fd4da46..84cabea 100644 --- a/definitions/staging/stg_calls_history_report.sqlx +++ b/definitions/staging/stg_calls_history_report.sqlx @@ -4,9 +4,15 @@ config { schema: "pphe_five9_stg", assertions: { uniqueKey: ["SESSION_ID", "TIMESTAMP", "DNIS"], - nonNull: ["SESSION_ID", "TIMESTAMP", "DNIS", "AGENT_GROUP_ID", "DISPOSITION_ID", "DISPOSITION_GROUP_ID", - "DISPOSITION_GROUP", "CAMPAIGN_ID", "CAMPAIGN_GROUP_ID", - "CAMPAIGN_GROUP", "SKILL_ID"] + nonNull: ["SESSION_ID", "TIMESTAMP", "DNIS", "AGENT_GROUP_ID", "SKILL_ID"], + rowConditions: [ + 'DISPOSITION_GROUP <> "NOT_MAPPED"', + 'CAMPAIGN_GROUP <> "NOT_MAPPED"', + 'DISPOSITION_ID <> 0', + 'DISPOSITION_GROUP_ID <> 0', + 'CAMPAIGN_ID <> 0', + 'CAMPAIGN_GROUP_ID <> 0', + ] }, tags: ["calls_report"], dependencies: ["stg_calls"], @@ -35,14 +41,14 @@ select sc.SESSION_ID, a.CODE LANGUAUGE_ID, a.AGENT_GROUP_ID, sc.AGENT_GROUP, - d.DISPOSITION_ID, + COALESCE(d.DISPOSITION_ID, 0), sc.DISPOSITION, - d.DISPOSITION_GROUP_ID, - d.DISPOSITION_GROUP, - c.CAMPAIGN_ID, + COALESCE(d.DISPOSITION_GROUP_ID, 0), + COALESCE(d.DISPOSITION_GROUP, 'NOT_MAPPED'), + COALESCE(c.CAMPAIGN_ID, 0), sc.CAMPAIGN, - c.CAMPAIGN_GROUP_ID, - c.CAMPAIGN_GROUP, + COALESCE(c.CAMPAIGN_GROUP_ID, 0), + COALESCE(c.CAMPAIGN_GROUP, 'NOT_MAPPED'), sc.SKILL, s.SKILL_ID, sc.CALL_TIME, diff --git a/definitions/staging/stg_calls_report.sqlx b/definitions/staging/stg_calls_report.sqlx index 7edb2b9..565b060 100644 --- a/definitions/staging/stg_calls_report.sqlx +++ b/definitions/staging/stg_calls_report.sqlx @@ -4,11 +4,15 @@ config { schema: "pphe_five9_stg", assertions: { uniqueKey: ["SESSION_ID", "TIMESTAMP", "DNIS"], - nonNull: ["SESSION_ID", "TIMESTAMP", "DNIS", "AGENT_GROUP_ID", "DISPOSITION_ID", "DISPOSITION_GROUP_ID", - "DISPOSITION_GROUP", "CAMPAIGN_ID", "CAMPAIGN_GROUP_ID", - "CAMPAIGN_GROUP", "SKILL_ID"], + nonNull: ["SESSION_ID", "TIMESTAMP", "DNIS", "AGENT_GROUP_ID", "SKILL_ID"], rowConditions: [ - 'BOARD_PROPERTY_GROUP <> "ADD"' + 'BOARD_PROPERTY_GROUP <> "ADD"', + 'DISPOSITION_GROUP <> "NOT_MAPPED"', + 'CAMPAIGN_GROUP <> "NOT_MAPPED"', + 'DISPOSITION_ID <> 0', + 'DISPOSITION_GROUP_ID <> 0', + 'CAMPAIGN_ID <> 0', + 'CAMPAIGN_GROUP_ID <> 0', ] }, tags: ["calls_report"], @@ -37,14 +41,14 @@ select sc.SESSION_ID, a.CODE LANGUAUGE_ID, a.AGENT_GROUP_ID, sc.AGENT_GROUP, - d.DISPOSITION_ID, + COALESCE(d.DISPOSITION_ID, 0), sc.DISPOSITION, - d.DISPOSITION_GROUP_ID, - d.DISPOSITION_GROUP, - c.CAMPAIGN_ID, + COALESCE(d.DISPOSITION_GROUP_ID, 0), + COALESCE(d.DISPOSITION_GROUP, 'NOT_MAPPED'), + COALESCE(c.CAMPAIGN_ID, 0), sc.CAMPAIGN, - c.CAMPAIGN_GROUP_ID, - c.CAMPAIGN_GROUP, + COALESCE(c.CAMPAIGN_GROUP_ID, 0), + COALESCE(c.CAMPAIGN_GROUP, 'NOT_MAPPED'), sc.SKILL, s.SKILL_ID, sc.CALL_TIME, diff --git a/definitions/staging/stg_digital_history_report.sqlx b/definitions/staging/stg_digital_history_report.sqlx index 182cc3d..4eabd43 100644 --- a/definitions/staging/stg_digital_history_report.sqlx +++ b/definitions/staging/stg_digital_history_report.sqlx @@ -4,8 +4,15 @@ config { schema: "pphe_five9_stg", assertions: { uniqueKey: ["SESSION_GUID"], - nonNull: ["SESSION_GUID", "AGENT_GROUP_ID", "DISPOSITION_ID", "MEDIA_TYPE_ID", - "CAMPAIGN_ID", "CAMPAIGN_GROUP_ID", "CAMPAIGN_GROUP", "SKILL_ID"] + nonNull: ["SESSION_GUID", "AGENT_GROUP_ID", "MEDIA_TYPE_ID", "SKILL_ID"], + rowConditions: [ + 'DISPOSITION_GROUP <> "NOT_MAPPED"', + 'CAMPAIGN_GROUP <> "NOT_MAPPED"', + 'DISPOSITION_ID <> 0', + 'DISPOSITION_GROUP_ID <> 0', + 'CAMPAIGN_ID <> 0', + 'CAMPAIGN_GROUP_ID <> 0', + ] }, tags: ["digital_report"], dependencies: ["stg_digital"], @@ -27,16 +34,16 @@ select d.SESSION_GUID, a.CODE LANGUAGE_ID, a.AGENT_GROUP_ID, d.AGENT_GROUP, - dis.DISPOSITION_ID, + COALESCE(dis.DISPOSITION_ID, 0), d.DISPOSITION, - dis.DISPOSITION_GROUP_ID, - dis.DISPOSITION_GROUP, + COALESCE(dis.DISPOSITION_GROUP_ID, 0), + COALESCE(dis.DISPOSITION_GROUP, 'NOT_MAPPED'), d.MEDIA_TYPE, m.MEDIA_TYPE_ID, - c.CAMPAIGN_ID, + COALESCE(c.CAMPAIGN_ID, 0), d.CAMPAIGN, - c.CAMPAIGN_GROUP_ID, - c.CAMPAIGN_GROUP, + COALESCE(c.CAMPAIGN_GROUP_ID, 0), + COALESCE(c.CAMPAIGN_GROUP, 'NOT_MAPPED'), d.SKILL, s.SKILL_ID, d.HANDLE_TIME, diff --git a/definitions/staging/stg_digital_report.sqlx b/definitions/staging/stg_digital_report.sqlx index c5bdae4..57cc05a 100644 --- a/definitions/staging/stg_digital_report.sqlx +++ b/definitions/staging/stg_digital_report.sqlx @@ -4,8 +4,15 @@ config { schema: "pphe_five9_stg", assertions: { uniqueKey: ["SESSION_GUID"], - nonNull: ["SESSION_GUID", "AGENT_GROUP_ID", "DISPOSITION_ID", "MEDIA_TYPE_ID", - "CAMPAIGN_ID", "CAMPAIGN_GROUP_ID", "CAMPAIGN_GROUP", "SKILL_ID"] + nonNull: ["SESSION_GUID", "AGENT_GROUP_ID", "MEDIA_TYPE_ID", "SKILL_ID"], + rowConditions: [ + 'DISPOSITION_GROUP <> "NOT_MAPPED"', + 'CAMPAIGN_GROUP <> "NOT_MAPPED"', + 'DISPOSITION_ID <> 0', + 'DISPOSITION_GROUP_ID <> 0', + 'CAMPAIGN_ID <> 0', + 'CAMPAIGN_GROUP_ID <> 0', + ] }, tags: ["digital_report"], description: "Main digital data for report" @@ -26,16 +33,16 @@ select d.SESSION_GUID, a.CODE LANGUAGE_ID, a.AGENT_GROUP_ID, d.AGENT_GROUP, - dis.DISPOSITION_ID, + COALESCE(dis.DISPOSITION_ID, 0), d.DISPOSITION, - dis.DISPOSITION_GROUP_ID, - dis.DISPOSITION_GROUP, + COALESCE(dis.DISPOSITION_GROUP_ID, 0), + COALESCE(dis.DISPOSITION_GROUP, 'NOT_MAPPED'), d.MEDIA_TYPE, m.MEDIA_TYPE_ID, - c.CAMPAIGN_ID, + COALESCE(c.CAMPAIGN_ID, 0), d.CAMPAIGN, - c.CAMPAIGN_GROUP_ID, - c.CAMPAIGN_GROUP, + COALESCE(c.CAMPAIGN_GROUP_ID, 0), + COALESCE(c.CAMPAIGN_GROUP, 'NOT_MAPPED'), d.SKILL, s.SKILL_ID, d.HANDLE_TIME,