문제 출처 : https://leetcode.com/problems/delete-duplicate-emails/
풀이 매크로
1. Person 테이블이아니라 Mail 테이블을 가져와야 하는 상황 > 특정 테이블의 일부를 가져와서 연산해야한다
2. 따라서 subquery 중 FROM을 이용해서 풀이를 해야한다.
DELETE FROM Person
WHERE Id NOT In
(
SELECT Id
FROM
(
SELECT Email, MIN(id) AS Id
FROM Person
GROUP BY Email
)temp
배운점
Subquery를 사용할때 다음과 같은 상황을 때 활용한다.
1. SELECT 절 서브쿼리 : 본 쿼리의 연산 결과와 관계없는 값을 결과로 출력하고자 할 때
2. FROM 절 서브쿼리 : 특정 테이블의 일부를가져와서 연산하고자 할 때 사용
3. WHERE 절 서브쿼리 : 특정 테이블의 일불르 가져와 조건을 걸고자할 때 사용
'SQL > 코딩테스트' 카테고리의 다른 글
[MySQL] SUB쿼리를 굳이 쓰지 않아도 되는 경우 (0) | 2024.11.10 |
---|---|
[MySQL] 하나의 테이블에 두개의 키 변수를 이용해 Join 하기 (0) | 2024.11.09 |
[MySQL] SQL 문제에서 문제정의방법 (1) | 2024.11.08 |
[MySQL] TRUNCATE와 WHERE 조건 범위 (0) | 2024.11.08 |
[MySQL] SUBSTR/REGEXP/LEFT/RIGHT 문자열 다루기 (1) | 2024.11.08 |