16
The Technique of Java Programming

오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

Embed Size (px)

Citation preview

Page 1: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

The Technique of Java Programming

Page 2: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

들어가기

이 자료는 교육 등 비영리 목적으로만 사용해야 합니다 !!!!

Page 3: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

만든사람 및 책 소개

• 오라클 SQL과 PL/SQL을 다루는 기술 : 오라클 프로그래밍 , 현장 밀착 입문서는 따로 있다 !

• 홍형경

• 주요 저서 : - 〈뇌를 자극하는 오라클 프로그래밍 SQL&PL/SQL

- Head First 시리즈를 비롯해 다수의 책 번역

Page 4: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

그룹쿼리와 집합 연산자첫째 마당 오라클 프로그래밍의 시작 , SQL

5 장

Page 5: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

01 기본 집계함수

GROUP BY 와 HAVING 절

ROLLUP 과 CUBE

집합 연산자

02

03

그룹쿼리와 집합 연산자

04

Page 6: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

01

SUM(expr) : expr 의 전체 합계

COUNT : 쿼리 결과건 수 , 로우 수 반환

기본 집계함수

AVG(expr) : expr 의 평균

MIN(expr) : expr 의 최소값

MAX(expr) : expr 의 최대값

VARIANCE(expr) : expr 의 분산

STDDEV(expr) : expr 의 표준편차

Page 7: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

02

GROUP BY 절

GROUP BY 와 HAVING 절

● 특정 그룹으로 묶어 데이터 집계 시 사용

● WHERE 와 ORDER BY 절 사이에 위치

● 집계함수와 함께 사용

● SELECT 리스트에서 집계함수를 제외한 모든 컬럼과 표현식은 GROUP BY 절에 명시해야 함

Page 8: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

02

HAVING 절

GROUP BY 와 HAVING 절

● GROUP BY 절 다음에 위치해 GROUP BY 한 결과를 대상으로 다시 필터를 거는 역할

● HAVING 다음에는 SELECT 리스트에 사용했던 집계함수를 이용한 조건을 명시

Page 9: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

03

ROLLUP (expr1, expr2, ...)

ROLLUP 과 CUBE

● GROUP BY 절에서 사용됨

● expr 로 명시한 표현식을 기준으로 집계한 결과 , 추가 정보 집계

● expr 로 명시한 표현식 수와 순서에 따라 레벨 별로 집계

● expr 개수가 n 개 라면 , n+1 레벨까지 , 하위에서 상위 레벨 순으로 집계

Page 10: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

03

CUBE (expr1, expr2, ...)

ROLLUP 과 CUBE

● GROUP BY 절에서 사용됨

● 명시한 표현식 개수에 따라 가능한 모든 조합별로 집계

● expr 개수가 3 이면 2 의 3 승 , 즉 총 8 가지 종류로 집계됨

Page 11: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

04

UNION

집합 연산자

● 집합의 합집합 개념

● 두 개 이상의 개별 SELECT 쿼리를 연결

● 개별 SELECT 쿼리 반환 결과가 중복될 경우 UNION 연산 결과는 한 로우만 반환됨

Page 12: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

04

UNION ALL

집합 연산자

● UNION 과 유사

● 개별 SELECT 쿼리 반환 결과가 중복될 경우 , 중복되는 건까지 모두 반환

Page 13: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

04

INTERSECT

집합 연산자

● 집합의 교집합 개념

● 두 개 이상의 개별 SELECT 쿼리를 연결

● 개별 SELECT 쿼리 반환 결과 중 공통된 항목만 추출

Page 14: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

04

MINUS

집합 연산자

● 집합의 차집합 개념

● 두 개 이상의 개별 SELECT 쿼리를 연결

● 개별 SELECT 쿼리 반환 결과 중 중복된 건을 제외한 선행 쿼리 결과 추출

Page 15: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

04

집합 연산자 제한사항

집합 연산자

● 개별 SELECT 쿼리의 SELECT 리스트 개수와 데이터 타입이 일치해야 함

● ORDER BY 절은 맨 마지막 개별 SELECT 쿼리에만 명시 가능함

● BLOB, CLOB, BFILE 같은 LOB 타입 컬럼은 집합 연산자 사용 불가

● UNION, INTERSECT, MINUS 연산자는 LONG 형 컬럼에는 사용 불가

Page 16: 오라클 SQL과 PL/SQL을 다루는 기술 - 5장.그룹쿼리와 집합연산자

04

GROUPING SET

집합 연산자

● ROLLUP, CUBE 처럼 GROUP BY 절에서 사용

● UNION ALL 과 유사한 결과 반환

● GROUPING SETS (expr1, expr2, expr3) ((GROUP BY expr1) UNION ALL (GROUP BY expr2) UNION ALL (GROUP BY expr3))