41. Поиск дублированных email #
Условие задачи:
📌 Есть таблица Employee(id, email, salary), в которой некоторые email повторяются. Нужно найти все email, встречающиеся более одного раза.
Employee table with columns: id, email, salary.
We have duplicated emails. How could we find all duplicated emails?
email
-----
a
b
c
a
Спойлеры к решению
Подсказки
💡 Используйте
💡 Альтернативно можно применить оконную функцию
GROUP BY email и фильтрацию HAVING COUNT(*) > 1.💡 Альтернативно можно применить оконную функцию
COUNT() OVER (PARTITION BY email) для подсчёта вхождений.Решение
-- Вариант 1: GROUP BY + HAVING
SELECT email
FROM Employee
GROUP BY email
HAVING COUNT(*) > 1;
-- Вариант 2: Оконная функция + DISTINCT
SELECT DISTINCT email
FROM (
SELECT
email,
COUNT(*) OVER (PARTITION BY email) AS cnt
FROM Employee
) sub
WHERE cnt > 1;