[TIL] 23.05.02

문종현·2023년 5월 2일
0

TIL

목록 보기
111/119
post-custom-banner

👉 오늘 한 일

  • 리트코드 SQL 문제 풀이

리트코드 SQL

1. Delete Duplicate Emails(196) 📌

  • easy

  • https://leetcode.com/problems/delete-duplicate-emails/

  • DELETE 구문 활용하기. delete 문을 사용하기 위해 셀프 조인을 활용. 이메일을 키값으로 사용하고 이메일이 중복일 경우 id가 큰 것을 삭제하기 위해 삭제하는 테이블인 p1의 아이디가 더 큰 것으로 조건을 걸어줌

DELETE p1 
FROM person AS p1
JOIN person AS p2
	ON p1.email = p2.email
WHERE p1.id > p2.id
  • 다른 풀이
    • delete문을 사용할 때는 같은 테이블을 서브쿼리로 활용하지 못하기 때문에 select 절을 서브쿼리로 활용하기 위해 생성된 테이블에서 참조를 받아야 함
delete from Person
where id not in (
select a.min_id from (
select email, min(id) as min_id from Person
group by email
) as a
)
profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글