The contact import in practice.contacts needs a report the support team can use. Addresses contain capitals and spaces, while some empty fields contain only spaces. Preserve the difference between a customer record and a usable email address.
These exercises revisit text cleanup, CTEs, left joins and conditional counts. They use the import alongside Lumen's orders and subscription history. An output with one row per customer must stay at that grain even if a customer has many orders or subscriptions. Aggregate a child table before joining when that makes the intention easier to inspect.
Don't replace missing addresses with a display label before counting them. You can add a label for presentation later; the analytical field should remain NULL when no usable address exists. Check both the numerator and denominator whenever you calculate a coverage share.