inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

데이터 분석 SQL Fundamentals

Group By 실습 - 01

group by 칼럼명 여러개 넣기

327

뀨구기

작성한 질문수 24

0

 

저는 주로 group by 할때 아래처럼 select 에 들어가는 칼럼을 몽땅 넣는데

 

select b.dname, a.empno, a.ename, round(avg(c.sal), 2)

group by b.dname, a.empno, a.ename

 

선생님처럼 max 같은 집계함수로 처리하는거랑 어떤 차이가 있나요??

DBMS/RDBMS postgresql sql

답변 1

0

권 철민

큰 차이는 없습니다. 

제가 아래와 같이 max(a.ename)을 사용한 이유는 group by 절에 사용되지 않은 컬럼을 select절에 출력하기 위해서는 aggregation을 적용해야 한다는 것을 보여드리기 위해서 사용한 것입니다.  

select b.dname, a.empno, max(a.ename)

from emp

group by b.dname, a.empno

적어 주신대로 group by b.dname, a.empno, a.ename와 같이 group by 절에 ename이 기술되면 select절에 굳이 max(ename)을 사용할 필요가 없습니다. 

다만 이렇게 사용하실때 유의하실 사항이 있습니다. select 절에 해당 컬럼을 사용하기 위해서 불필요하게 group by 컬럼이 추가된 것인지 점검해 봐야 합니다. group by b.dname, a.empno, a.ename은 empno 레벨로 uniq하므로 a.ename이 group by에 추가되어도 별 문제가 없습니다만, 이와 같지 않은 경우에 group by 레벨이 변할 수 있으므로 유의해야 합니다. 

또 굳이 따지자면 대용량 데이터의 경우 group by 레벨이 하나 더 있으므로 수행시각이 쪼오금~ 더 걸릴 수 있습니다. 

0

뀨구기

감사합니다.

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

0

52

2

date_part

0

55

2

lag/lead offset 관련 질문

0

55

2

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

1

99

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

130

2

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

0

91

1

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

0

117

2

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

0

123

2

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

0

133

2

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

0

126

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