Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- OOP
- 코딩테스트
- 성능테스트툴
- String.valueOf()
- 버블정렬
- Array.asList
- java
- 프로그래머스
- vm인스턴스생성
- 인텔리제이
- Spring MVC 동작원리
- 알고리즘
- 투포인터알고리즘
- 코드스테이츠
- GCP
- MySQL
- 11659
- 구간합구하기
- List.of
- 재귀와반복문
- 코드스테이츠 백엔드
- Spring MVC 구성요소
- Spring Web MVC
- 재귀함수
- 클라우드에서 도커 실행하기
- 백준
- 자바
- 싱글톤패턴
- 백준 11659
- 스택
Archives
- Today
- Total
순간을 기록으로
[LeetCode] Delete Duplicate Emails 본문
문제
중복된 이메일을 가지는 행을 삭제하는 delete 문을 작성해야 하는 문제.
중복된 이메일을 갖는 행이 있다면 id 값이 가장 작은 행만 남기고 나머지는 삭제해야 합니다.
풀이
delete와 join을 이용해서 풀 수 있습니다.
예를들어 person 테이블에는 다음과 같이 3개의 데이터가 있다고 가정하겠습니다.
person을 같은 이메일로 self join하면 다음과 같은 결과를 얻을 수 있습니다.
여기서 p1.Id > p2.Id라는 조건을 걸게 되면 다음과 같은 데이터가 남습니다.
이 데이터가 바로 삭제해야할 데이터 입니다.
다중 테이블에서는 from 앞에있는 테이블에서 일치하는 행만 삭제됩니다.
따라서 3 | john@example.com을 삭제해야되기 때문에 delete p1을 작성하면 됩니다.
1
2
3
4
5
6
|
delete p1 from person p1
inner join person p2
on
p1.email = p2.email
where
p1.id > p2.id;
|
cs |
'Problem Solving' 카테고리의 다른 글
[Java] 백준_카드 정렬하기_1715 (0) | 2022.11.07 |
---|---|
[LeetCode] Maximum Subarray (0) | 2022.11.06 |
[LeetCode] Swap Salary (0) | 2022.11.06 |
[LeetCode] Calculate Special Bonus (0) | 2022.11.06 |
[Java] 신기한 소수 찾기_백준_2023 (0) | 2022.10.28 |
Comments