Problems / Events Before Conversion / Editorial
MIN(purchase_time)
first_purchase
event_time < first_purchase_time
COUNT(e.event_id)
users
COUNT(*) vs COUNT(column) is the difference between counting rows and counting matches. After a LEFT JOIN, the zero-match entity still produces one row (all NULLs on the right), so COUNT(*) reports 1 where the truth is 0 — a bug that only shows up for exactly the edge users the report is most curious about. Pairing every LEFT JOIN aggregate with a NULL-skipping count is the reflex this problem drills.
COUNT(*)
COUNT(column)
Solve Events Before Conversion yourself →