Общественный номер: You Er Hut
Автор: Питер
Редактор: Питер
LeetCode-182 — Поиск повторяющихся писем
Всем привет, меня зовут Питер~
В этой статье объясняется 182-й раздел LeetCode-SQL, название которого:Найти повторяющиеся адреса электронной почты.
Уровень сложности: легкий, это очень легко узнать после прохождения!
тема
Ниже приведена конкретная тема: поиск повторяющихся адресов электронной почты из данной таблицы.
идеи
индивидуальный подход 1
Групповая статистика на основе каждого почтового ящика Email.Если количество статистики больше 1, это означает, что почтовый ящик дублируется. Запустив один и тот же код дважды, разница настолько велика!
select
Email
from Person
group by Email
having count(Email) > 1; -- 过滤条件
индивидуальный подход 2
Идея метода 2 аналогична идее метода 1, за исключением того, что используется промежуточная таблица результатов, и, наконец, для фильтрации используется условие where; для фильтрации используется условие наличия, используемое в методе 1:
select
t.Email
from(select -- 统计每个Email的个数
Email
,count(*) as number -- 个数
from Person
group by Email
)t -- 临时结果表
where t.number > 1; -- 选择个数大于1的Email
Эффект временной таблицы результатов t:
Эталонный метод
Данная таблица является самообъединяемой, условия объединения: почтовые ящики одинаковые, но идентификаторы разные:
select
distinct (p1.Email) -- 去重统计邮箱
from Person p1
join Person p2 on p1.Email = p2.Email and p1.Id != p2.Id; -- 指定连接条件