From: Lucía Moreno, marketing manager
Deliverable: a clean newsletter table, and a summary by sign-up form
"Before the spring newsletter goes out, I need the sign-up list cleaned. Same email in different capitals counts once (keep the most recent sign-up), drop anything that isn't a real address, tidy up names, and give me a proper age column. Then tell me how many clean subscribers each form brought in and their average age."
Data: signups_raw. Don't change it; work on a copy.
How this works: each step starts from the table your previous step left.
Cleaning is done in place on a working copy, one rule at a time, so each change can be checked before the next. The order matters: clean the email before deduplicating on it, or Amara.Okafor@Example.com and amara.okafor@example.com survive as two people.
Every step is an UPDATE or DELETE checked by what the table looks like afterwards. Before each one, try its WHERE as a SELECT to see which rows it touches.