Magic ETL

Magic ETL

Fill empty columns based on values in other columns

I'm trying to figure out a way to do the following in an ETL.

Given data that looks like this, I want to propagate the email address from the first row with a specific ID to all other rows that match that ID. I need to do this in order to attribute all interactions of all sorts to a specific user's email address:

Input Example:

image.png

Desired Output:

Screenshot 2023-06-26 at 5.06.19 PM.png

Welcome!

It looks like you're new here. Members get access to exclusive content, events, rewards, and more. Sign in or register to get started.
Sign In

Best Answers

  • Answer ✓

    This is best accomplished in a dataflow. Using magicETL you can use the group by tile and group by ID for the field Email and select the first non-null value option, then, with 1 email per id from the output of that tile, you can join that with you data on the ID field. Let me know if you have any questions!

    If I solved your problem, please select "yes" above

  • Answer ✓

    No because you will break out the group by into a separate line in the dataflow. So from you input dataset there will be two lines:
    1. All rows of data

    2. 1 unique row for each ID.

    Then you will left join the unique rows for each ID with the original input that has all rows of data. No rows of data will be lost.

    If I solved your problem, please select "yes" above

Answers

  • Answer ✓

    This is best accomplished in a dataflow. Using magicETL you can use the group by tile and group by ID for the field Email and select the first non-null value option, then, with 1 email per id from the output of that tile, you can join that with you data on the ID field. Let me know if you have any questions!

    If I solved your problem, please select "yes" above

  • Thanks @colemenwilson I'm going to try that approach and will post back if I can't figure it out.

  • @colemenwilson - if I do the group by ID tile, won't I lose the additional rows for that same ID? The ID is in the same table as the individual interaction rows

  • Answer ✓

    No because you will break out the group by into a separate line in the dataflow. So from you input dataset there will be two lines:
    1. All rows of data

    2. 1 unique row for each ID.

    Then you will left join the unique rows for each ID with the original input that has all rows of data. No rows of data will be lost.

    If I solved your problem, please select "yes" above

  • Got it, thanks!

Welcome!

It looks like you're new here. Members get access to exclusive content, events, rewards, and more. Sign in or register to get started.
Sign In