1
SQLIntermediate#queries
Group by the duplicate columns with HAVING COUNT(*) > 1 to find them, then delete using ROW_NUMBER to keep exactly one copy.
WITH d AS ( SELECT id, ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) rn FROM users ) DELETE FROM users WHERE id IN (SELECT id FROM d WHERE rn > 1);