📝182. Duplicate Emails
🔹 중복 이메일
모든 중복 이메일을 보고하는 솔루션을 작성하세요. 이메일 필드가 NULL이 아니라는 것이 보장됩니다.
어떤 순서로든 결과 테이블을 반환합니다.
📝 문제 설명
LeetCode 182번 Duplicate Emails 문제는 중복된 이메일을 찾는 SQL 쿼리를 작성하는 문제입니다.
이메일(email) 필드는 NULL이 아님이 보장되며, 같은 이메일이 여러 번 등장하는 경우 해당 이메일을 출력해야 합니다.
📊 테이블 구조
Person 테이블
Column Name | Type |
id | int |
varchar |
💡 SQL 문제 해결 방법
이 문제는 GROUP BY와 HAVING 절을 활용하여 해결할 수 있습니다. 동일한 email 값을 기준으로 그룹화한 뒤, 2번 이상 등장한 이메일만 필터링하면 됩니다.
반응형
🖥️ SQL 풀이
SELECT email
FROM Person
GROUP BY email
HAVING COUNT(email) > 1
🔍 쿼리 분석
- GROUP BY email: email 컬럼을 기준으로 그룹화하여 동일한 이메일을 묶습니다.
- COUNT(email) > 1: 그룹별 개수를 계산한 후, 중복된 이메일(즉, 2개 이상 존재하는 이메일)만 필터링합니다.
- 출력 컬럼: email 값을 그대로 반환합니다.
📌 실행 예제
📊 입력 데이터
Person 테이블
id | |
1 | a@b.com |
2 | c@d.com |
3 | a@b.com |
쿼리 실행 결과
a@b.com |
🎯 결론
이 문제를 통해 GROUP BY와 HAVING 절을 활용하여 중복 데이터를 찾는 방법을 배울 수 있습니다.
실무에서도 중복된 사용자 정보, 중복된 주문 기록, 중복된 로그 데이터 등을 찾아야 할 때 동일한 패턴을 활용할 수 있습니다. 특히, 데이터 클리닝이나 정제 과정에서도 매우 유용하게 사용할 수 있는 쿼리 패턴입니다. 🚀
더 많은 SQL 문제 풀이를 보고 싶다면 LeetCode SQL 문제 모음을 확인해 보세요! 🚀
728x90
반응형
'LeetCode' 카테고리의 다른 글
[LeetCode] 511. Game Play Analysis 1 (0) | 2025.02.27 |
---|---|
[LeetCode] 183. Customers Who Never Order (0) | 2025.02.25 |
[LeetCode] 181. Employees Earning More Than Their Managers (0) | 2025.02.24 |
[LeetCode] 175. Combine Two Tables (4) | 2025.02.20 |
[LeetCode SQL50] - Advanced String Functions / Regex / Clause 문제풀이 (2) | 2025.02.19 |