문제
Person 테이블에서 중복된 이메일 주소만 출력하는 문제였다.
문제 풀이
내가 생각한 풀이
SELECT email AS Email
FROM Person
GROUP BY email
HAVING COUNT(email)>1;
- GROUP BY로 email을 기준으로 그룹을 만든다.
- HAVING으로 같은 이메일이 2번 이상 등장한 경우만 선택한다.
- 결과적으로 중복된 이메일만 출력된다!
다른 사람의 풀이
SELECT DISTINCT p1.email AS Email
FROM Person p1, Person p2
WHERE p1.id<>p2.id AND p1.email=p2.email;
- 같은 테이블을 두 번 사용해서 자기 자신과 비교한다.
- 조건(p1.id<>p2.id)으로 같은 사람끼리 비교하지 않도록 한다.
- 조건(p1.email=p2.email)으로 같은 이메일을 가졌을 때만 결과로 추린다.
- DISTINCT 사용해서 중복 출력을 방지한다.
'코딩테스트 > LeetCode' 카테고리의 다른 글
[LeetCode/MySQL]197. Rising Temperature (0) | 2025.05.04 |
---|---|
[LeetCode/MySQL]196. Delete Duplicate Emails (0) | 2025.05.04 |
[LeetCode/MySQL]183. Customers Who Never Order (0) | 2025.05.04 |
[LeetCode/MySQL]181. Employees Earning More Than Their Managers (0) | 2025.05.02 |
[LeetCode/MySQL]175. Combine Two Tables (0) | 2025.05.02 |