Найти дубли email среди клиентов-мужчин

54. Найти дублирующиеся email среди клиентов-мужчин

Условие задачи:
В таблице customers необходимо найти дублирующиеся значения поля email, учитывая только клиентов с gender = 'male'.

Нужно вывести:

  • email;

  • cnt — количество записей с этим email.

В результат должны попасть только email, встречающиеся более одного раза.


Спойлеры к решению

Подсказки
💡 Сначала отфильтруй только записи с gender = 'male'.
💡 Сгруппируй оставшиеся строки по email.
💡 Для каждой группы посчитай количество записей через COUNT(*).
💡 Условия на результат группировки задаются через HAVING.

Решение
SELECT
    email,
    COUNT(*) AS cnt
FROM customers
WHERE gender = 'male'
GROUP BY email
HAVING COUNT(*) > 1;

Условие:

WHERE gender = 'male'

ограничивает выборку клиентами-мужчинами.

Затем:

GROUP BY email

объединяет строки с одинаковыми email, а:

HAVING COUNT(*) > 1

оставляет только те адреса, которые встречаются более одного раза.

Если email может быть NULL и такие значения не должны считаться дублями, можно добавить:

WHERE gender = 'male'
  AND email IS NOT NULL