inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 고급 SQL

leetcode 196번 문제의 서브쿼리 풀이에 관해

228

데잇걸즈4기_강지은

작성한 질문수 1

1

안녕하세요! 데잇걸즈 4기 강지은입니다!

강의와 실습 둘다 즐겁게 진행하고 있습니다.

아직 서브쿼리 개념이 많이 어색한데요, 특히 WHERE절에 서브쿼리를 넣는 개념이 약간 어렵습니다.TT

(서브쿼리를 보다보니 JOIN이 쉬워보이는 매직...)

강의 듣는 도중에 궁금했던 점들 여쭤보고 싶습니다!

1) 서브쿼리는 주로 from절에 많이 쓰이나요? 

가상의 테이블을 만든다는 것 자체가 활용도가 높아보이는데요,

196번을 where절 안에 서브쿼리 이용하면서 풀때에도 from절에 칼럼이 Email, MIN(Id)로 된 서브쿼리가 있더라구요!

서브쿼리가 중첩되어서 식이 어려워지기는 하는데, 어찌됐든 FROM절에서 서브쿼리가 또 쓰이더라구요!

서브쿼리는 FROM에서 자주쓴다고 이해하면 조금 활용하기 쉬울까요?

그리고 여기서 temp는 무엇을 의미하는지 궁금합니다. 그냥 임시테이블 만들때 as해서 붙이는 개념이라 생각하면 될까요?

2) 그리고 여기서 NOT IN 이 아니라 IN 으로 써서 풀수도 있을까요?

저는 처음에 NOT IN을 활용할 생각을 전혀 못하고, 중복된 애들을 지워야 한다는 생각만 했습니다.

그래서 WHERE절에 서브쿼리를 해서

DELETE A

FROM Person AS A, Person AS B

WHERE A.Id IN (SELECT A.Email

                                 FROM Person AS B WHERE A.Email = B.Email AND A.Id > B.Id)

이런식으로 구조 세워서 풀었었는데 두개의 테이블을 JOIN하지 않고 바로 꺼낸다는 시점에서

뭔가 논리가 잘못됐음을 깨닫고 INNER JOIN으로 풀어버렸어요. TT

혹시 이게 가능할까요?  힌트를 주셨으면 합니다.!!

즐겁고 유익한 강의 정말 감사합니다!

sql

답변 1

0

한예은

안녕하세요 지은님! 

1. 서브쿼리는 주로 SELECT 절/ FROM 절/WHERE 절 에서 자주 쓰이고, 그 밖에도  HAVING 절/ORDER BY 절/INSERT 문의VALUES 절/UPDATE 문의 SET 절 등등 다양한 곳에서 활용 가능합니다.

FROM절 서브쿼리는 특정 테이블의 일부를 가져와서 연산하고자 할 때 사용한다고 생각하시면 활용하기 좋으실 거에요! 

또 temp라는 말도 이해하신 것처럼 말그래도 임시로 붙였다는 뜻인데 관용적으로 잘 쓰이는 표현입니다. :)

2. IN으로도 문제를 풀 수 있는데, WHERE절에서 서브쿼리 안에 서브쿼리를 중첩해서 inner join을 활용하여 풀어보는 건 어떤가요? :)

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

0

85

1

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

0

58

2

서브쿼리 질문

0

59

2

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

0

72

1

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

0

67

1

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

0

66

2

Top Earners 문제관련 질문

0

96

2

고급반 cheetsheet

0

146

2

196. Delete Duplicate Emails 좋은 코드 질문

0

140

1

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

0

125

0

강의 플랫폼

0

197

3

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

0

204

2

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

0

249

1

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

0

355

2

사용자정의함수

0

230

1

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

0

295

1

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

0

259

1

196. subquery로 풀 때, 궁금한 점

0

382

2

쿼리성능 질문드립니다.

0

312

1

리트코드 highest department salary 문제

0

257

2

The report 문제 order by부분 질문

0

269

2

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

0

420

1

DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의

0

235

1

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

0

282

1