1 minute read

SQL - 3

  • 다중행 함수
  • 데이터 그룹화
  • 행/열 바꾸기



오라클 내장 함수 - 6. CASE문 계속

  • 대상이 ‘숫자’일 경우, CASE문 기준대상에 생략할 수도 있다.
  • WHEN에다가 대상 및 조건 모두 입력 ㄱㄱ



다중행 함수, 데이터 그룹화 - 1. 다중행 함수

  • 다중행 함수 : 여러 행을 바탕으로 하나의 결과 값을 도출!

    그룹 함수, 복수행 함수로도 불림

함수 기능
SUM() : 합
COUNT() : 개수
MAX() : 최대값
MIN() : 최소값
AVG() : 평균
  • SUM( [DISTINCT or ALL or 지정안함] [합계 구할 열 or 함수] )
  • COUNT( [DISTINCT or ALL or 지정안함] [개수 구할 열 or 함수] )

    참고! COUNT에서는 NULL 값 인식하지 않는다!!

  • MAX/MIN ( [DISTINCT or ALL or 지정안함] [최대값/최소값 구할 열 or 함수] )

    참고! 날짜/문자 데이터에도 활용 가능
    max

  • AVG( [DISTINCT or ALL or 지정안함] [평균값 구할 열 or 함수] )



다중행 함수, 데이터 그룹화 - 2. GROUP BY절

  • 다중행 함수 결과값을, 특정 열 기준으로 묶어서 출력 가능!!
  • 문법

    SELECT [조회할 열1], [조회할 열2], … … [열N]
    FROM [테이블]
    WHERE [조회할 행을 선별하는 조건식]
    GROUP BY [그룹화 열1], [그룹화 열2] … … [열N]
    HAVING [출력그룹을 선별하는 조건식]
    ORDER BY [정렬하려는 열]
    groupBy

    groupBy3

  • 참고! 다중행(직원이름, 사원번호 등 값의 중복이 없는)은 GROUP BY절에 넣지 않는다!!



다중행 함수, 데이터 그룹화 - 3. 그룹화 관련 함수들

  • GROUP BY절 뒤에 사용할 수 있는 옵션
  • ROLLUP, CUBE : 그룹화 데이터의 합계 출력 (출력 방식 약간 다름)
    • GROUP BY ROLLUP( [그룹화 열 지정(여러개 가능)] )
    • GROUP BY CUBE( [그룹화 열 지정(여러개 가능)] )
  • GROUPING SETS : 같은 수준의 그룹화 열이 여러 개일 때, 각 열별 그룹화 및 출력
    • GROUP BY GROUPING SETS ( [그룹화 열 지정(여러개 가능] )
  • GROUPING : Rollup or Cube 사용할 때, 그룹화 대상으로 지정한 열이 집계 되었는지 여부 확인
    • 그룹화 되었다면 : 숫자 ‘0’ 출력
    • 그룹화 안된 데이터라면 : 숫자 ‘1’ 출력
  • GROUPING_ID : 위 GROUPING과 마찬가지

    단, 검사할 열을 여러 개 지정 가능!!! (Grouping은 하나의 열만)

  • LISTAGG : 그룹 데이터, 가로로 출력
    • LISTAGG( [나열할 열], [각 데이터 구분자] )
    • WITHIN GROUP( ORDER BY 정렬 기준 열 )
      listagg

  • PIVOT, UNPIVOT : 기존 테이블의 행/열 바꿔서 출력 pivot






기타(팁)



다음 강의 준비

  • SQL은 다시 다음주 월, 화
  • 내일부턴 자바프로그래밍!!








nice!!!!!!!

Updated: