[정보처리기사 실기] 7장 SQL 응용 - SQL 작성하기

2022. 4. 23. 14:55정보처리기사/실기

728x90
반응형

집계성 SQL 작성

데이터 분석 함수의 개념

- 데이터 분석을 위해 복수 기준의 데이터를 모아 처리하는 것 목적으로 하는 다중 행 함수, Group BY 사용해 매핍, select, having, order by 등 구문 활용

 

데이터 분석 함수 종류

  • 집계 함수 : 여러 행 또는 전체 행부터 하나의 결괏값 반환
  • 그룹 함수 : 소그룹 간의 소계 및 중계의 중간 합계 분석 데이터 산출
  • 윈도 함수 : 온라인 분석 처리 용도로 사용하기 위해 표준 쿼리에 추가 

집계 함수

(1) 개념 : 하나의 결괏값으로 반환 : select ~ from ~ [where ~] group by ~ [having ~]

  • where 조건으로 지정된 집합에 대한 조건 선택시 having 사용하는 것
  • group by 뒤에 테이블 구분하는 컬럼 기재해 그룹화
  • having 조건 지정 시 사용, 상수나 집약 함수, 집약 키 사용
  • GROUP BY : where 화용해 조건별 대상 ROW 선택, 복수 로우 대상의 분석 시 그룹핑 대상이 되는 부분 선별 필요
    • null 값 제외, select에서 쓰는 것과 같은 alias 제외, where 안에 포함 안됨, where은 group by 보다 먼저 실행되고 대상이 되는 단일 행을 사전에 선별하는 역할
    • 컬럼 단위를 선정 할 때 사용하는 기준, 조정을 통해 사용자가 원하는 분석 데이터 볼 수 있다.
  • HAVING : where 구문 내에는 사용 안됨, 집계 함수의 구문 적용해 복수 행의 결과 조건별로 적용, GROUP BY 뒬에 기재 

(2) 종류

- count, sum, avg, max, min, stddev(표준편차), varian(분산)

그룹 함수

(1) 개념 : 전체 행을 하나 이상의 컬럼을 기준으로 값에 따하 그룹화하여 결과 출력

 

(2) 유형

  • ROLLUP 함수 : 컬럼은 소그룹 합계 등 중간 집계 값을 산출하기 위한 그룹 함수, 지정 수 보다 하나 더 큰 레벨 만큼 중간 집계 값 생성, 계층별로 구성되기 때문, 순서가 바뀌면 수행결과 바뀜
    • select ~ from ~ [where ~] group by [~] rollup ~ [having ~] [order by ~]
    • 대상 컬럼은 rollup 뒤에, 대상이 아니면 group by 뒤에 기재, select 뒤에 포함되는 컬럼만이 기재 될 수 있다, order by 통해 계층 내 정렬에 사용, sql의 결과 보다 체계적
  • CUBE 함수 : 결합 가능한 모든 값 다차원 집계, 연산이 많아 시스템 부담 준다.
    • select ~ from ~ [where ~] group by [~] cube ~ [having ~] [order by ~]
  • GROUPING SETS 함수 : 집계 대상 컬럼들에 대한 개별 집계 구한다, rollup이나 cube 달리 컬럼 간 순서와 무관한 결과 얻는 그룹
    • select ~ from ~ [where ~] group by [~] grouping sets ~ [having ~] [order by ~]

 윈도 함수

(1) 개념 : 디비 사용한 온라인 분석 처리 용도로 사용 표준 쿼리, OLAP

 

(2) 구문 : select ~ over ([partition by ~] [order by ~]) from ~

 

(3) 순위 함수 

  • RANK : 특정 컬럼에 대한 순위 구하는 함수, 동일 순위의 레코드 존재시 후순위로 넘어감
  • DENSE_RANK : 순위 계산, 후순위 넘어가지 않음
  • ROW_NUMBER : 순위 계산, 동일 순서 있어도 연속 번호 부여
728x90
반응형