SQL LISTAGG 함수 사용법

핵심원리

LISTAGG 함수는 여러 행의 값을 하나의 문자열로 연결하여 출력하는 SQL 함수입니다. 이 함수는 주로 그룹화된 데이터에서 특정 컬럼의 값들을 구분자로 구분된 문자열로 변환하는 데 사용됩니다. 예를 들어, 특정 부서에 속한 직원들의 이름을 콤마(,)로 구분된 하나의 문자열로 반환할 수 있습니다.

실무에서 쓰이는 이유

실무에서는 데이터를 요약하거나 보고서 형태로 출력할 때 LISTAGG 함수를 자주 사용합니다. 특히, 여러 행의 데이터를 한 줄로 요약해야 할 때 유용합니다. 예를 들어, 특정 프로젝트에 참여한 모든 사람의 이름을 한 줄에 표시하거나, 특정 부서에 속한 직원들의 이름을 한 번에 출력하는 경우가 이에 해당합니다.

실무에서 구체적으로 사용되는 상황 예측

  • 보고서 생성: 특정 부서나 팀에 속한 모든 직원의 이름을 하나의 행에 표시해야 하는 경우.
  • 데이터 시각화: 특정 카테고리별로 속한 아이템을 나열할 때, 한 줄에 모두 표시하고자 할 때.
  • 사용자 인터페이스: 웹 페이지에서 특정 그룹의 항목들을 나열할 때, 데이터베이스 쿼리에서 직접 한 줄로 출력할 수 있도록 사용.

연습 문제

다음은 연습 문제입니다. 아래 SQL 쿼리를 작성하여 각 부서에 속한 직원들의 이름을 쉼표로 구분하여 한 줄로 출력하세요.

SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS EMPLOYEE
FROM emp
GROUP BY deptno;

연습문제 해답

SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS EMPLOYEE
FROM emp
GROUP BY deptno;

응용 문제

직원 이름과 해당 직원의 월급을 함께 출력하도록 SQL 쿼리를 작성해보세요. 직원 이름과 월급을 쉼표로 구분하여 출력하고, 각 부서별로 출력합니다.

응용문제 해답

SELECT deptno, LISTAGG(ename || '(' || sal || ')', ',') WITHIN GROUP (ORDER BY ename) AS EMPLOYEE
FROM emp
GROUP BY deptno;

전자상거래 업계에서 쓰일 수 있는 경우

전자상거래 사이트에서 LISTAGG 함수를 사용하여 특정 카테고리에 속한 모든 제품 이름을 한 줄로 나열할 수 있습니다. 예를 들어, “가전제품” 카테고리에 속한 모든 제품 이름을 쉼표로 구분하여 표시할 수 있습니다. 이를 통해 관리자 페이지나 보고서에서 특정 카테고리의 제품 목록을 한 번에 확인할 수 있습니다.

전자상거래 업계에서 응용할 수 있는 경우의 SQL 코드 예시 및 테이블 제시

SELECT category_id, LISTAGG(product_name, ',') WITHIN GROUP (ORDER BY product_name) AS PRODUCTS
FROM products
GROUP BY category_id;

이 쿼리는 각 카테고리에 속한 제품들의 이름을 쉼표로 구분하여 한 줄로 출력합니다.

Posts created 411

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top