• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

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

23.01.06 16:21 작성 조회수 170

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에서 지원하는 별도의 함수 입니다.

감사합니다.