inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

데이터 분석 SQL Fundamentals

having 절과 where 절에서 상관서브쿼리 질문있습니다.

해결된 질문

312

cjh

작성한 질문수 24

0

강사님 , 항상 답변 감사합니다 (__)

having 절, group by 절에 상관 서브쿼리를 사용하지 않는게 좋다고 하셨습니다.

 

다시 생각을 해보니

WHERE 절에 상관 서브쿼리가 있다면

메인 쿼리에 로우 하나씩 상관 서브쿼리로 전달을 해서

상관 서브쿼리가 연산을 하는 것과

 

HAVING 절도 GROUP BY로 만들어진 결과를 로우 하나씩

상관 서브쿼리로 연산을 하는 것은

 

제가 생각하기에는 동일한 방식인거 같은데

having, group by 절에는 사용을 하지 말라고 하신지 궁금합니다.

sql postgresql dbms/rdbms

답변 1

1

권 철민

안녕하십니까,

강의에서도 말씀드리듯이, group by, having절에 서브쿼리를 사용은 할 수 있습니다만, 저는 가독성과 성능 측면에서 별로 적용할 이유가 없다고 봅니다.

먼저 group by 는 보통 특정 컬럼 기준값 또는 로직 기준값을 group을 하여 aggregate를 적용하기 위해서 사용하는데, 여기에 굳이 다른 테이블과 연결을 시키는 상관/비상관 서브쿼리를 사용할 필요는 없을 것 같습니다. 필요하다면 다른 테이블과 조인을 먼저 한 후에 필요한 컬럼으로 group by를 하면 될인데, 가독성(다른 사람이 해당 SQL을 보고 왜 이렇게 만들었는지 이유를 찾지 못한다던가) 측면이나 성능 측면(비 상관 서브쿼리시 다른 테이블에 연결을 해야 하는데, 성능 최적화 측면에서 무슨 문제가 나올지 저도 모르겠습니다)에서 좋을 이유가 없습니다.

저는 사용해 본적 없고, 사용한 경우도 보지 못했습니다.

having 절도 상관 서브쿼리는 마찬가지 개념입니다. 다만 having절의 비상관 서브쿼리는 이전에 질문하신 대로 적용이 필요하다면 적용하시면 될 것 같습니다.

다시 말씀드리지만, group by, having절에 서브쿼리를 사용할 수 있습니다. 필요하시다면 직접 적용해 보시고 판단해 보시기 바랍니다.

감사합니다.

0

cjh

항상 감사합니다 강사님!! 다음 강의도 열심히 듣겠습니다

'레벨 유지'의 의미에 대한 질문

0

53

2

date_part

0

55

2

lag/lead offset 관련 질문

0

55

2

join 관련 질문 (inner join, left join)

1

100

2

배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?

0

89

2

Madrid에 살고 있는 고객이 주문한 주문 정보를 구할것. 실습 질문드립니다

0

53

2

rollup시 null값 매출 라벨링

0

54

2

10. 조인 실습 - 02 관련 질문

0

59

1

조인실습03 - join의 pk-fk join

0

108

2

조인실습03 - join의 pk-fk join

0

68

2

(공유)맥, 스키마 import

0

81

2

sql 입문자인데, 이 강의와 sql 코딩테스트와 연관이 있을까요?

0

137

2

1인지 M인지는 결국엔 테이블을 직접 확인을 해야 하는걸까요?

0

131

2

안녕하세요. 튜닝핵심가이드강의 관련해서 여쭤보고 싶어서 남깁니다.

0

91

1

섹션5 Group by 실습-01 강의 예제 질문

0

117

2

섹션2 조인 기반 메커니즘에서 조인 실습 - 04 강의 예제 질문

0

124

2

섹션2 조인 실습 01 강의 질문

0

133

2

lead lag 이해 강의에서 윈도우 절은 사용되지 않습니다.

0

127

1

Dbeaver오류

0

630

2

직원 별 가장 높은 매출

0

118

1

강의순서대로 실습코드순알려주세요.

0

133

1

m:n inner join일 경우 cross조인과 동일하게 동작되는건가요?

0

130

1

rollup

0

91

2

Dbeaver에 접속해도 postgressql이 네비게이터에 안보입니다.

0

355

2