inflearn logo
강의

講義

知識共有

[白文布団の余裕]データ分析のための高度なSQL

【深層】DELETE 問題演習 + DELETE with INNER JOIN

리트코드 196 질문입니다.

394

Absolute

投稿した質問数 1

0

안녕하세요 강사님

1. 제가 작성한 쿼리가 왜 오류로 작동하는지 모르겠습니다. 

2. 이러한 쿼리도 셀프 join이라고 말하나요?

i) 

delete person

from (

    select min(id) as min_id

    from person

    group by email) temp

join person on person.id = temp.min_id

where temp.min_id = person.id

ii)

delete person

from (

    select min(id) as min_id

    from person

    group by email) temp

join person on person.id = temp.min_id

where temp.min_id = person.id

ii)의 결과가,  3 | john@example.com만 남는걸로 봐서 id가 1,2인 행이 삭제된 걸 알 수 있는데 (i) 결과에서는 id가 1,2,3인 행들이 모두 살아남아요, 이유를 모르겠습니다.

추가) 이 문제에서 id를 primary key로 지정했기 때문에 select가 잘 작동안하는건가요?

만약 그런거라면, 제가 primary key를 해제하려고 코드를 작성해보았으나 수정 권한이 없다는 오류가 떠서요..

sql

回答 1

0

canary4651

안녕하세요 Absolute님, Absolute님 !

일단 쿼리를 돌려보면 (i), (ii) 둘다 똑같이 id가 1,2인 데이터들이 삭제되고 3만 남고 있습니다. 

이 문제에서 id를 primary key로 지정했기 때문에 select가 작동이 안되기 보단

쿼리에서 문제가 있어서 id가 3인 결과값이 나오고 있습니다. 

서브쿼리를 이용해서 문제를 푸는 방법으론

DELETE FROM Person 

WHERE Id NOT IN 

(SELECT * 

 FROM(

    SELECT MIN(Id) 

     FROM Person

     GROUP BY Email) as temp);

로 수정하면 원하는 결과값이 나옵니다.

2. 셀프 조인은 동일 테이블 안에서 이루어지는 것이기 때문에 셀프 조인이라고 할 수 있습니다.

감사합니다. 

순위 함수 연습 문제 - 스테디셀러 작가 찾기

0

88

1

문제 내용이 잘못된 것 같습니다.

0

59

2

서브쿼리 질문

0

61

2

[수업질문] 서브쿼리 > null데이터 avg사용 주의

0

73

1

서브쿼리는 언제 작성하는건가요?

0

69

1

안녕하세요 질문드립니다.

0

66

2

Top Earners 문제관련 질문

0

97

2

고급반 cheetsheet

0

150

2

196. Delete Duplicate Emails 좋은 코드 질문

0

143

1

a.id = 1과 b.id=1이 없어도 되는 이유

0

127

0

강의 플랫폼

0

199

3

리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요

0

205

2

ERD 읽는법에 추가 질문 있어요

0

252

1

lead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답

0

359

2

사용자정의함수

0

230

1

이 문제 inner join이 이해가 안됩니다.

0

298

1

평균 함수 사용할 때 주의점과 해결법

0

261

1

196. subquery로 풀 때, 궁금한 점

0

385

2

쿼리성능 질문드립니다.

0

315

1

리트코드 highest department salary 문제

0

260

2

The report 문제 order by부분 질문

0

271

2

리트코드 서브쿼리 문제 질문

0

422

1

DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의

0

237

1

서브쿼리의 활용사례 및 조인관련질문

0

287

1