Part 8. SQL (응용 SQL)

정보처리기사 실기 Part 8. SQL (응용 SQL)


Section 1. 집계 함수

1. 단일 행 함수

  • " 행 각각을 처리하여 각각의 결과값을 반환 "



2. 다중 행 함수

  • " 전체 또는 그룹별로 데이터를 처리하여 단일 결과값을 반환 "



3. 집계 함수

  • " 다중 행 함수로 여러 행을 처리한 후 하나의 행의 결과 값을 반환한다 "
  • COUNT 함수 제외 다른 모든 함수는 NULL 값 계산 X
  • SUM, AVG, COUNT, MAX, MIN, STDDEV, VARIANCE



Section 2. GROUP BY절을 이용한 그룹 처리 함수

1. GROUP BY 절

  • " 컬럼별로 그룹을 지어 그룹 처리를 하기 위한 문법으로 SELECT 속성이름 부분에 맨 처음으로 무조건 나와야 함 "



2. ROLLUP 함수

  • " 주어진 컬럼별 소그룹 간의 집계와 총계를 계산하여 원래 테이블에 추가하여 결과 반환 "
  • 컬럼의 수 N개이면 (N+1)개의 레벨
SELECT DEPT 학과, GRADE 학년, ROUND(AVG(TEST)) 평균
FROM STUDENT
GROUP BY ROLLUP(DEPT, GRADE);

# ROLLUP(A,B,C)이면
ABC
AB
A
(총계)이렇게 (N+1)단계로 작은 단계부터 상단에 표시



3. CUBE 함수

  • " 주어진 컬럼들 간의 결합 가능한 모든 조합의 그룹 집계와 총계를 계산하여 원래 테이블에 추가 후 반환 "
SELECT DEPT 학과, GRADE 학년, ROUND(AVG(TEST)) 평균
FROM STUDENT
GROUP BY CUBE(DEPT, GRADE);

# CUBE(A,B,C)이면
(총계)
ABC
AB
AC
BC
A
B
C 이런식으로 N^2 단계로 큰 단계부터 상단에 표시 



Section 3. GROUP BY절을 사용하지 않는 윈도우 함수

1. 윈도우 함수

  • " 분석 함수라고도 하며 윈도우라는 분석 함수용 그룹을 정의하여 계산 수행 "



2. 윈도우 함수 문법

SELECT [UNIQUE] 속성명,,,
OVER([PARTITION BY 컬럼명] [ORDER BY 절] [WINDOWING 절])
FROM 테이블명

# GROUP BY를 사용하지 않고 그룹별 처리
SELECT UNIQUE DEPT, GRADE, COUNT(*)
OVER(PARTITION BY DEPT, GRADE) 인원수
FROM STUDENT
ORDER BY DEPT, GRADE;

# 순위 계산용 RANK()함수

SELECT DEPT, ENAME, SALARY,RANK() OVER(ORDER BY SALARY DESC) 전체순위
FROM EMP;

좋은 웹페이지 즐겨찾기