인프런 커뮤니티 질문&답변

Dash Choi님의 프로필 이미지
Dash Choi

작성한 질문수

데이터 분석 SQL Fundamentals

Group By와 집계 함수의 case when을 이용한 피봇팅 실습

group by 수업 관련 질문입니다.

작성

·

219

0

안녕하세요,

group by 강의 중 궁금한 점이 생겨서 문의 드립니다.

select job,count(*)

from hr.emp

group by job;

해당 쿼리를 실행하면 job 별 직원 숫자가 count 되는데,

여기서 추가로 각 job 별 직원 숫자에 해당되는 empno 를 출력하고 싶은데 어떻게 하면 될까요?

group by를 사용하면 칼럼에 집계함수를 사용한 칼럼한 사용할 수 있다고 하셨는데.. 아이디어가 떠오르지 않네요

감사합니다.

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

원하는 출력 결과가 잘 이해가 안되는 군요.

group by를 deptno로 하면 deptno 레벨로 결과가 나오는 데 이걸 아래와 같이 출력하고자 함인가요?

deptno count empno_list

10 2 [700, 701]

20 3 [702, 703, 704]

만약 그렇다면, 기본적으로 group by SQL은 위 방식을 지원하지 않습니다.

하지만 방법은 있습니다. 아래와 같이 array_to_string(array_agg(), delimter 문자열) 함수를 사용하는 것입니다.

SELECT DEPTNO, count(*),

ARRAY_TO_STRING(ARRAY_AGG(ENAME), ',' ) FROM EMP GROUP BY DEPTNO;

 

array_to_string(array_agg(), delimter 문자열)는 ANSI SQL 표준이 아닙니다. PostgreSQL에서 지원하는 별도의 함수 입니다.

감사합니다.

Dash Choi님의 프로필 이미지
Dash Choi

작성한 질문수

질문하기