Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

Segment

Count of Unique Phone

Count of Duplicates

Total Records in Alternate Channel (Contact)

'Primary Phone' Created by mulesoft

77,114

109,693

186,807

'Primary Phone' Not created by mulesoft

156,086

223,790

379,876

Grand Total

165,242

236,145

566,683

Segment 1 : De-duplication of Alternate Channel Phone records linked to Contacts - Not Created by Mulesoft

...

Expand
titlePhase1: 'Primary Phone' Records NOT created by mulesoft - where No of Duplicates = 1 and Primary Phone was CreatedBy = AQConversion

Rule:

If ‘Primary Phone' was created by AQConversion and was never modified by a user since time of record creation, retain the 'Duplicate Phone’.

If ‘Primary Phone' was created by AQConversion and was later modified by a user since time of record creation, retain 'Primary Phone’

  • De-duplication rule is based on Status for ‘Primary Phone’ numbers

  • Records were not created by mulesoft and only one duplicate entry was found

  • ‘Primary Phone’ was created by AQConversion

  • “Duplicate Phone' was created a by User

  • Record Count = 83,400 (08.5.2024)

Primary Phone Status(Newest)

Duplicate phone Status(Oldest)

Count

Record to Keep

Analyst Comments

1

Former

Good

77190

Oldest Record

2

Former(User Modified)

Good

89

Newest Record

3

Former

Bad

48

Oldest Record

Change Status to Former

4

Former

Last Known

2

Oldest Record

Change Status to Former

5

Former

Needs Verification

1

Oldest Record

Change Status to Former

6

Good

Good

232

Oldest Record

7

Good(User Modified)

Good

206

Newest Record

8

Good

Bad

42

Oldest Record

Change Status to Former

9

Good(User Modified)

Bad

55

Newest Record

10

Good

Needs Verification

3

Oldest Record

Change Status to Former

11

Good(User Modified)

Needs Verification

2

Newest Record

12

Deceased

Deceased

462

Oldest Record

13

Bad

Bad/Good

2

Newest Record

Approver Sign-off:

Approvers are kindly required to check the tick box and comment ‘Approved’ to sign-off.

  •  Alain Gasquet
  •  Jessica Wood

...

Expand
titlePhase 3: 'Primary Phone' Records NOT created by mulesoft - where No of Duplicates = 1 and Primary Phone was NOT CreatedBy AQConversion

De-duplication rule based on Status for ‘Primary Phone’ numbers not created by mulesoft or AQConversion and only one duplicate entry was found

Record Count = 8309(13.4.2024)

Primary Phone Status(Newest)

Duplicate Phone Status(Oldest)

Count

Record to Keep

Analyst Comments

1

Former

Good

5257

Newest record

2

Former

Former

629

Oldest record

3

Former

Bad

113

Oldest record

4

Former

Needs Verification

4

Newest record

5

Former

Last Known

1

Newest record

6

Former

Deceased

4

Oldest record

7

Good

Good

606

Newest record

8

Good

Former

11

Newest record

9

Good

Bad

460

Newest record

10

Good

Needs Verification

1

Newest record

11

Bad

Bad

129

Oldest record

Change Status to Former

12

Bad

Good

45

Newest record

Change Status to Former

13

Bad(Modified recently)

Good

12

Newest record

Change Status to Former

14

Bad(Modified recently)

Bad

20

Oldest record

15

Bad

Bad(Modified recently)

87

Oldest record

Retain oldest to keep recent validation. Change Status to Former

16

Bad

Good(Modified recently)

20

Oldest record

Retain oldest to keep recent validation.

17

Deceased

Deceased

33

Oldest record

18

Last Known

Good

1

Newest record

Approver Sign-off:

Approvers are kindly required to check the tick box and comment ‘Approved’ to sign-off.

  •  Alain Gasquet
  •  Jessica Wood

...

Expand
titlePhase 4: De-duplicate records not created by mulesoft where No of Duplicates > 1 and 'Primary Phone' NOT created by AQConversion

De-duplication rule based on Status for ‘Primary Phone’ numbers not created by mulesoft and more than 1 duplicate entries were found

Rule: Retain the record with the most recent LastModifiedDate.

Record Count: 64,292 (08.05.2024)

Primary Phone Status(Newest)

Primary record Modified after Dupes by TAP User?

Count

Record to Keep

Analyst Comments

1

Former

Yes

62,466

Newest Record

2

Former

No

564

Modified Record

Keep the most recently modified record

3

Good

Yes

118

Newest record

4

Good

No

17

Modified Record

Keep the most recently modified record

5

Deceased

No

44

Oldest Record

Approver Sign-off:

Approvers are kindly required to check the tick box and comment ‘Approved’ to sign-off.

  •  Alain Gasquet
  •  Jessica Wood

...

Expand
titlePhase 4: 'Primary Phone' Records created by mulesoft

Rule: Isolate for manual review. If the Primary Phone Status is ‘Former’ mule_svc updated Phone on Contact and archived the old value on Contact as 'Former'.
Retain most recently created record by CreatedDate

  • Record Count = 97,743 (13.05.2024)

Primary Phone Status(

Newest

)Dupe Phone

Status

Count

Oldest Records

Record to

Keep

keep

Analyst Comments

Count

1

Former

Former

Contains Bad

/Good

Keep Newest as Former

37,

2662

197

Former

Bad

Keep Oldest record with Status Bad

Isolate for Review

2,541

Deceased

Deceased

Yes

Keep Oldest as Deceased

12

Good

Good

Keep Newest

Record3

as Good

46,215

Good

Contains Bad/

Former

60,464

Keep

Bad/Former

Isolate for Review

4

Bad

Yes

1

Newest Record

Oldest record with Status Former

11,274

Good

Needs Verification

Keep Oldest record with Status Needs Verification

64

Good

Deceased

Keep Oldest record with Status Deceased

8

 

...

Appendix

Snapshot of Segment Summary taken from Snowflake -

...

Expand
titleSnowflake Script
Code Block
/* Alternate Channel De-Duplication - Marketing Automation/Preference Centre

Business Owners: Jessica Wood, Alain Gasquet

Developer Notes:
Records were trimmed and cleaned using regular expression replace
If number starts with +612, +6102, +613, +6103, +614, +6104, +617, +6107, +618, +6108 the numbers were considered Australian and +61 was replaced by 0. 
For each unique formatted phone number per contact, sorted in descending order, dupliacate records were identified if there was an exact match.

*/

--create or replace view sp_advancement_db.tda_sch.altchannel_phone_dedupe_vw as
with aq_contact_duplicates as(
with ac_primary as
(
select ac.id "Alt Channel SF ID:Primary",
        ac.name "Alt Channel Name:Primary",
        ac.aqb__contact__c "ContactID:Primary",
        ac.aqb__statusaccount__c "StatusAccountID:Primary",
        regexp_replace(split_part(ac.aqb__typelinkedto__c "Type , '"',2), '/','') "Linked To:Primary",
        ac.aqb__phonestatus__c "PhoneStatus:Primary",
        ac.aqb__type__c "Type:Primary",
        ac.aqb__phone__c "Phone:Primary",
        
        case 
        when startswith("Formatted Phone", '0011') then regexp_replace("Formatted Phone", '^(0011)', '')
        when startswith("Formatted Phone", '000') then regexp_replace("Formatted Phone",  '^(000)', '0')
        when startswith("Formatted Phone", '00') then regexp_replace("Formatted Phone",  '^(00)', '0')
        when startswith("Formatted Phone", '612') then regexp_replace("Formatted Phone", '^(612)', '02')
        when startswith("Formatted Phone", '613') then regexp_replace("Formatted Phone", '^(613)', '03')
        when startswith("Formatted Phone", '614') then regexp_replace("Formatted Phone", '^(614)', '04')
        when startswith("Formatted Phone", '617') then regexp_replace("Formatted Phone", '^(617)', '07')
        when startswith("Formatted Phone", '618') then regexp_replace("Formatted Phone", '^(618)', '08')
        when startswith("Formatted Phone", '6102') then regexp_replace("Formatted Phone", '^(6102)', '02')
        when startswith("Formatted Phone", '6103') then regexp_replace("Formatted Phone", '^(6103)', '03')
        when startswith("Formatted Phone", '6104') then regexp_replace("Formatted Phone", '^(6104)', '04')
        when startswith("Formatted Phone", '6107') then regexp_replace("Formatted Phone", '^(6107)', '07')
        when startswith("Formatted Phone", '6108') then regexp_replace("Formatted Phone", '^(6108)', '08')
        else "Formatted Phone"
        end "Formatted Phone:Primary",
        ac.createddate "CreatedDate:Primary",
        ac.lastmodifieddate "LastModifiedDate:Primary",
        u.name "CreatedBy:Primary",
        u1.name "LastModifiedBy:Primary",
        ac.aqb__source__c "Source:Primary",
        ac.aqb__linkedto__c,
        row_number() over(partition by "ContactIDLinked To:Primary", "Formatted Phone:Primary" order by "CreatedDate:Primary" desc ) seq
        from(select a.*,
                    regexp_replace(lower(trim(a.aqb__phone__c)), '[^a-z0-9]', '') "Formatted Phone"
                    from salesforce_db.salesforce_sch.aqb__aqaddress__c a
                    )ac
        left join salesforce_db.salesforce_sch.recordtype r on r.id = ac.recordtypeid
        left join salesforce_db.salesforce_sch.user u on u.id = ac.createdbyid
        left join salesforce_db.salesforce_sch.user u1 on u1.id = ac.lastmodifiedbyid
        left join salesforce_db.salesforce_sch.contact c on left(c.id,15) = ac.aqb__contact__c "Linked To:Primary"
        left join salesforce_db.salesforce_sch.account a on a.id = ac.aqb__account__c
        where "ContactID:Primary"
is not null         and r.name r.name = 'Phone'
        and c.aqb__type__c <> 'Student'
       -- and "Status("Linked To:Primary" = 'Good'
        --and a.aqb__accounttype__c = 'Household' like '003%')
        order by 3,7,14

),


ac_dupes as
(
select ac.id "Alt Channel SF ID:Dupe",
        ac.name "Alt Channel Name:Dupe",
        ac.aqb__contact__c "ContactID:Dupe",
        regexp_replace(split_part(ac.aqb__statuslinkedto__c "Status:Dupe",
, '"',2), '/','') "Linked To:Dupe",
        ac.aqb__status__c "Status:Dupe",
        ac.aqb__type__c "Type:Dupe",
        ac.aqb__phone__c "Phone:Dupe",

        case 
        when startswith("Formatted Phone", '0011') then regexp_replace("Formatted Phone", '^(0011)', '')
        when startswith("Formatted Phone", '000') then regexp_replace("Formatted Phone",  '^(000)', '0')
        when startswith("Formatted Phone", '00') then regexp_replace("Formatted Phone",  '^(00)', '0')
        when startswith("Formatted Phone", '612') then regexp_replace("Formatted Phone", '^(612)', '02')
        when startswith("Formatted Phone", '613') then regexp_replace("Formatted Phone", '^(613)', '03')
        when startswith("Formatted Phone", '614') then regexp_replace("Formatted Phone", '^(614)', '04')
        when startswith("Formatted Phone", '617') then regexp_replace("Formatted Phone", '^(617)', '07')
        when startswith("Formatted Phone", '618') then regexp_replace("Formatted Phone", '^(618)', '08')
        when startswith("Formatted Phone", '6102') then regexp_replace("Formatted Phone", '^(6102)', '02')
        when startswith("Formatted Phone", '6103') then regexp_replace("Formatted Phone", '^(6103)', '03')
        when startswith("Formatted Phone", '6104') then regexp_replace("Formatted Phone", '^(6104)', '04')
        when startswith("Formatted Phone", '6107') then regexp_replace("Formatted Phone", '^(6107)', '07')
        when startswith("Formatted Phone", '6108') then regexp_replace("Formatted Phone", '^(6108)', '08')
        else "Formatted Phone"
        end "Formatted Phone:Dupe",
        ac.createddate "CreatedDate:Dupe",
        ac.lastmodifieddate "LastModifiedDate:Dupe",
        u.name "CreatedBy:Dupe",
        u1.name "LastModifiedBy:Dupe",
        ac.aqb__source__c "Source:Dupe",
        ac.aqb__linkedto__c,
        row_number() over(partition by "ContactIDLinked To:Dupe" order by "CreatedDate:Dupe" desc ) seq
        from(select a.*,
                    regexp_replace(lower(trim(a.aqb__phone__c)), '[^a-z0-9]', '') "Formatted Phone"
                    from salesforce_db.salesforce_sch.aqb__aqaddress__c a
                    )ac
        left join salesforce_db.salesforce_sch.recordtype r on r.id = ac.recordtypeid
        left join salesforce_db.salesforce_sch.user u on u.id = ac.createdbyid
        left join salesforce_db.salesforce_sch.user u1 on u1.id = ac.lastmodifiedbyid
        left join salesforce_db.salesforce_sch.contact c on left(c.id,15) = ac.aqb__contact__c "Linked To:Dupe"
        left join salesforce_db.salesforce_sch.account a on a.id = ac.aqb__account__c
        where "ContactID:Dupe" is not null 
       and r.name = 'Phone' and ("Linked       and c.aqb__type__c <> 'Student'
  To:Dupe"  like '003%')
     --and a.aqb__accounttype__c = 'Household'
),

Dupes as
( select *
       from (
       select * from ac_primary acp 
       where acp.seq = 1
            )dd
       join ac_dupes acd on "ContactIDLinked To:Primary" = "ContactIDLinked To:Dupe" 
       where "Alt Channel Name:Primary" <> "Alt Channel Name:Dupe"
       and "Formatted Phone:Primary" like= "Formatted Phone:Dupe"
       order by 2,3,1
)

select "Alt Channel SF ID:Primary",
       "Alt Channel Name:Primary",
       "ContactID:Primary",
       "AccountID:Primary",
       "Phone:Primary",
       "Formatted Phone:Primary",
       "Status:Primary",
       "Type:Primary",
       "LastModifiedDate:Primary",       
       "CreatedDate:Primary",
       "LastModifiedBy:Primary",
       "CreatedBy:Primary",
       "Source:Primary",       
       listagg("Alt Channel SF ID:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc)"Alt Channel ID:Dupes",
       listagg("Alt Channel Name:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Alt Channel Names:Dupes",
       listagg("Phone:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Phones:Dupes",
       listagg("Formatted Phone:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Formatted Phones:Dupes",
       listagg("Status:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Status:Dupes",
       listagg("Type:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Type:Dupes",
       listagg("CreatedBy:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "CreatedBy:Dupes",
       listagg("CreatedDate:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "CreatedDate:Dupes",
       listagg("LastModifiedBy:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "LastModifiedBy:Dupe",
       listagg("LastModifiedDate:Dupe",',') within group (order by "LastModifiedDate:Dupe" desc) "LastModifiedDate:Dupe",
       listagg("Source:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Source:Dupes",
       count("Alt Channel SF ID:Dupe") "No of Dupes:Dupes"
       from dupes d
       --where "CreatedBy:Primary" = 'mule_svc'group by all
       group by all
       order by 2,3,1

),

Segment_01 as
(
select 'Segment 01' "Segment Name",
d.*, '' "LastModifiedDate:Dupe1" from duplicates d
where  "CreatedBy:Primary" <>'mule_svc'
and "CreatedBy:Primary" = 'AQConversion'
and "No of Dupes:Dupes" = 1
),

Segment_02 as
(select 'Segment 02' "Segment Name",
d.*, '' "LastModifiedDate:Dupe1" from duplicates d
where  "No of Dupes:Dupes" = 1
and "CreatedBy:Primary" not in ('mule_svc', 'AQConversion')
),

Segment_03 as
(
select 'Segment 03' "Segment Name",
d.*, split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1" from duplicates d
where  "No of Dupes:Dupes" > 1
and "CreatedBy:Primary" <> 'mule_svc'
),

Segment_04 as
(
select 'Segment 04' "Segment Name",
d.*, split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1" from duplicates d
where  "CreatedBy:Primary" = 'mule_svc'
)


select * from ( select * from Segment_01order by 2,3,1

),


------------------------------------------
/* Account Phone duplicates in Alternate Channel */

aq_account_duplicates as(
with account_primary as
(
select ac.id "Alt Channel SF ID:Primary",
        ac.name "Alt Channel Name:Primary",
        ac.aqb__contact__c "ContactID:Primary",
        ac.aqb__account__c "AccountID:Primary",
        regexp_replace(split_part(ac.aqb__linkedto__c , '"',2), '/','') "Linked To:Primary",
        ac.aqb__status__c "Status:Primary",
        ac.aqb__type__c "Type:Primary",
        ac.aqb__phone__c "Phone:Primary",
        
        case 
        when startswith("Formatted Phone", '0011') then regexp_replace("Formatted Phone", '^(0011)', '')
        when startswith("Formatted Phone", '000') then regexp_replace("Formatted Phone",  '^(000)', '0')
        when startswith("Formatted Phone", '00') then regexp_replace("Formatted Phone",  '^(00)', '0')
        when startswith("Formatted Phone", '612') then regexp_replace("Formatted Phone", '^(612)', '02')
        when startswith("Formatted Phone", '613') then regexp_replace("Formatted Phone", '^(613)', '03')
        when startswith("Formatted Phone", '614') then regexp_replace("Formatted Phone", '^(614)', '04')
        when startswith("Formatted Phone", '617') then regexp_replace("Formatted Phone", '^(617)', '07')
        when startswith("Formatted Phone", '618') then regexp_replace("Formatted Phone", '^(618)', '08')
        when startswith("Formatted Phone", '6102') then regexp_replace("Formatted Phone", '^(6102)', '02')
        when startswith("Formatted Phone", '6103') then regexp_replace("Formatted Phone", '^(6103)', '03')
        when startswith("Formatted Phone", '6104') then regexp_replace("Formatted Phone", '^(6104)', '04')
        when startswith("Formatted Phone", '6107') then regexp_replace("Formatted Phone", '^(6107)', '07')
        when startswith("Formatted Phone", '6108') then regexp_replace("Formatted Phone", '^(6108)', '08')
        else "Formatted Phone"
        end "Formatted Phone:Primary",
        ac.createddate "CreatedDate:Primary",
        ac.lastmodifieddate "LastModifiedDate:Primary",
        u.name "CreatedBy:Primary",
        u1.name "LastModifiedBy:Primary",
        ac.aqb__source__c "Source:Primary",
        ac.aqb__linkedto__c,
        row_number() over(partition by "Linked To:Primary", "Formatted Phone:Primary" order by "CreatedDate:Primary" desc ) seq
        from(select a.*,
                    regexp_replace(lower(trim(a.aqb__phone__c)), '[^a-z0-9]', '') "Formatted Phone"
                    from salesforce_db.salesforce_sch.aqb__aqaddress__c a
                    )ac
        left join salesforce_db.salesforce_sch.recordtype r on r.id = ac.recordtypeid
        left join salesforce_db.salesforce_sch.user u on u.id = ac.createdbyid
        left join salesforce_db.salesforce_sch.user u1 on u1.id = ac.lastmodifiedbyid
        --left join salesforce_db.salesforce_sch.contact c on left(c.id,15) = ac.aqb__linkedto__c
        left join salesforce_db.salesforce_sch.account a on left(a.id,15) = "Linked To:Primary"
        where r.name = 'Phone' and ("Linked To:Primary"  like '001%')
        order by 3,7,14

),


account_dupes as
(
select ac.id "Alt Channel SF ID:Dupe",
        ac.name "Alt Channel Name:Dupe",
        ac.aqb__contact__c "ContactID:Dupe",
        ac.aqb__account__c "AccountID:Dupe",
        regexp_replace(split_part(ac.aqb__linkedto__c , '"',2), '/','') "Linked To:Dupe",
        ac.aqb__status__c "Status:Dupe",
        ac.aqb__type__c "Type:Dupe",
        ac.aqb__phone__c "Phone:Dupe",

        case 
        when startswith("Formatted Phone", '0011') then regexp_replace("Formatted Phone", '^(0011)', '')
        when startswith("Formatted Phone", '000') then regexp_replace("Formatted Phone",  '^(000)', '0')
        when startswith("Formatted Phone", '00') then regexp_replace("Formatted Phone",  '^(00)', '0')
        when startswith("Formatted Phone", '612') then regexp_replace("Formatted Phone", '^(612)', '02')
        when startswith("Formatted Phone", '613') then regexp_replace("Formatted Phone", '^(613)', '03')
        when startswith("Formatted Phone", '614') then regexp_replace("Formatted Phone", '^(614)', '04')
        when startswith("Formatted Phone", '617') then regexp_replace("Formatted Phone", '^(617)', '07')
        when startswith("Formatted Phone", '618') then regexp_replace("Formatted Phone", '^(618)', '08')
        when startswith("Formatted Phone", '6102') then regexp_replace("Formatted Phone", '^(6102)', '02')
        when startswith("Formatted Phone", '6103') then regexp_replace("Formatted Phone", '^(6103)', '03')
        when startswith("Formatted Phone", '6104') then regexp_replace("Formatted Phone", '^(6104)', '04')
        when startswith("Formatted Phone", '6107') then regexp_replace("Formatted Phone", '^(6107)', '07')
        when startswith("Formatted Phone", '6108') then regexp_replace("Formatted Phone", '^(6108)', '08')
        else "Formatted Phone"
        end "Formatted Phone:Dupe",
        ac.createddate "CreatedDate:Dupe",
        ac.lastmodifieddate "LastModifiedDate:Dupe",
        u.name "CreatedBy:Dupe",
        u1.name "LastModifiedBy:Dupe",
        ac.aqb__source__c "Source:Dupe",
        ac.aqb__linkedto__c,
        row_number() over(partition by "Linked To:Dupe" order by "CreatedDate:Dupe" desc ) seq
        from(select a.*,
                    regexp_replace(lower(trim(a.aqb__phone__c)), '[^a-z0-9]', '') "Formatted Phone"
                    from salesforce_db.salesforce_sch.aqb__aqaddress__c a
                    )ac
        left join salesforce_db.salesforce_sch.recordtype r on r.id = ac.recordtypeid
        left join salesforce_db.salesforce_sch.user u on u.id = ac.createdbyid
        left join salesforce_db.salesforce_sch.user u1 on u1.id = ac.lastmodifiedbyid
        --left join salesforce_db.salesforce_sch.contact c on left(c.id,15) = ac.aqb__linkedto__c
        left join salesforce_db.salesforce_sch.account a on left(a.id,15) = "Linked To:Dupe"
        where
        r.name = 'Phone' and ("Linked To:Dupe"  like '001%')
),

Dupes as
( select * from (
       select * from account_primary acp 
       where acp.seq = 1
            )dd
       join account_dupes acd on "Linked To:Primary" = "Linked To:Dupe" 
       where "Alt Channel Name:Primary" <> "Alt Channel Name:Dupe"
       and "Formatted Phone:Primary" = "Formatted Phone:Dupe"
       order by 2,3,1
)

select "Alt Channel SF ID:Primary",
       "Alt Channel Name:Primary",
       "ContactID:Primary",
       "AccountID:Primary",
       "Phone:Primary",
       "Formatted Phone:Primary",
       "Status:Primary",
       "Type:Primary",
       "LastModifiedDate:Primary",       
       "CreatedDate:Primary",
       "LastModifiedBy:Primary",
       "CreatedBy:Primary",
       "Source:Primary",       
       listagg("Alt Channel SF ID:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc)"Alt Channel ID:Dupes",
       listagg("Alt Channel Name:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Alt Channel Names:Dupes",
       listagg("Phone:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Phones:Dupes",
       listagg("Formatted Phone:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Formatted Phones:Dupes",
       listagg("Status:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Status:Dupes",
       listagg("Type:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Type:Dupes",
       listagg("CreatedBy:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "CreatedBy:Dupes",
       listagg("CreatedDate:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "CreatedDate:Dupes",
       listagg("LastModifiedBy:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "LastModifiedBy:Dupe",
       listagg("LastModifiedDate:Dupe",',') within group (order by "LastModifiedDate:Dupe" desc) "LastModifiedDate:Dupe",
       listagg("Source:Dupe", ',') within group (order by "LastModifiedDate:Dupe" desc) "Source:Dupes",
       count("Alt Channel SF ID:Dupe") "No of Dupes"
       from dupes d
       --where "CreatedBy:Primary" = 'mule_svc'
       group by all
       order by 2,3,1

),


Segment_01 as
(
select '01' "Segment Order", 'Contact Primary Phone created by AQ, Dupe Count = 1' "Segment Name",
acd.*, split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1",
split_part("Alt Channel ID:Dupes", ',', 1) "Alt Channel ID:Dupe1"
from aq_contact_duplicates acd
where  "CreatedBy:Primary" not in('mule_svc', 'Student Integration User')
and "CreatedBy:Primary" = 'AQConversion'
and "No of Dupes" = 1
),

Segment_02 as
(select '02' "Segment Order",'Contact Primary Phone NOT created by AQ/mule_svc Dupe Count = 1' "Segment Name",
acd.*, split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1",
split_part("Alt Channel ID:Dupes", ',', 1) "Alt Channel ID:Dupe1"
from aq_contact_duplicates acd
where  "No of Dupes" = 1
and "CreatedBy:Primary" not in ('mule_svc', 'AQConversion', 'Student Integration User')
),

Segment_03 as
(
select '03' "Segment Order",'Contact Primary Phone NOT created by mulesoft, Dupe Count > 1' "Segment Name",
acd.*, split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1", 
split_part("Alt Channel ID:Dupes", ',', 1) "Alt Channel ID:Dupe1"
from aq_contact_duplicates acd
where  "No of Dupes" > 1
and "CreatedBy:Primary" not in('mule_svc', 'Student Integration User')
),

Segment_04 as
(
select '04' "Segment Order",'Contact Primary Phone created by mule_svc' "Segment Name",
acd.*,
split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1",
split_part("Alt Channel ID:Dupes", ',', -1) "Alt Channel ID:Dupe1"
from aq_contact_duplicates acd
where  "CreatedBy:Primary" in('mule_svc', 'Student Integration User')
),

Segment_05 as
(
select '05' "Segment Order", 'Account Primary Phone created by AQ, Dupe Count = 1' "Segment Name",
aad.*, split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1",
split_part("Alt Channel ID:Dupes", ',', 1) "Alt Channel ID:Dupe1"
from aq_account_duplicates aad
where  "CreatedBy:Primary" not in ('Student Integration User','mule_svc')
and "CreatedBy:Primary" = 'AQConversion'
and "No of Dupes" = 1
),

Segment_06 as
(select '06' "Segment Order",'Account Primary Phone NOT created by AQ/mule_svc Dupe Count = 1' "Segment Name",
aad.*, split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1",
split_part("Alt Channel ID:Dupes", ',', 1) "Alt Channel ID:Dupe1"
from aq_account_duplicates aad
where  "No of Dupes" = 1
and "CreatedBy:Primary" not in ('mule_svc', 'AQConversion', 'Student Integration User')
),

Segment_07 as
(
select '07' "Segment Order",'Account Primary Phone NOT created by mulesoft, Dupe Count > 1' "Segment Name",
aad.*, split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1", 
split_part("Alt Channel ID:Dupes", ',', 1) "Alt Channel ID:Dupe1"
from aq_account_duplicates aad
where  "No of Dupes" > 1
and "CreatedBy:Primary" not in('Student Integration User','mule_svc')
),

Segment_08 as
(
select '08' "Segment Order",'Account Primary Phone created by mule_svc' "Segment Name",
aad.*,
split_part("LastModifiedDate:Dupe", ',', 1) "LastModifiedDate:Dupe1",
split_part("Alt Channel ID:Dupes", ',', -1) "Alt Channel ID:Dupe1"
from aq_account_duplicates aad
where  "CreatedBy:Primary" in('Student Integration User', 'mule_svc')
)

select * from ( select * from Segment_01
                union all 
                select * from Segment_02
                union all 
                select * from Segment_03
                union all
                select * from Segment_04
                union all
                select * from Segment_05
                union all 
                select * from Segment_0206
                union all 
                select * from Segment_0307
                union all
                select * from Segment_0408
                );