🔷 SQL: Duplicate Detection and the NULL Trap
Finding duplicates:
SELECT email, COUNT(*) AS cnt
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
The NULL comparison trap:
- NULL = NULL → returns NULL (not TRUE!)
- NULL != 5 → returns NULL (not TRUE!)
- Always use IS NULL or IS NOT NULL
- COUNT(column) ignores NULLs, COUNT(*) counts all rows
- AVG(column) ignores NULLs (divides by non-NULL count)
Practice Questions
Q: Table has 100 rows. Column
bonus has 20 NULLs. What does AVG(bonus) divide by?