Download presentation
Presentation is loading. Please wait.
1
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절
2
그룹 함수의 개념 그룹함수란? 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 그룹화하여 그룹별로 결과를 출력하는 함수
그룹함수는 통계적인 결과를 출력하는데 자주 사용 7장. 그룹 함수
3
그룹 함수의 처리 과정 컬럼값을 기준으로 전체행을 3개로 그룹핑 그룹 집합이 3개이므로 결과 행도 3건 그룹함수 그룹함수
7장. 그룹 함수
4
그룹 함수의 종류 7장. 그룹 함수
5
COUNT 함수 COUNT 함수 테이블에서 조건을 만족하는 행의 개수를 반환하는 함수 7장. 그룹 함수
6
COUNT 함수 예 7장. 그룹 함수
7
AVG, SUM 함수 7장. 그룹 함수
8
MIN, MAX 함수 7장. 그룹 함수
9
STDDEV, VARIANCE 함수 7장. 그룹 함수
10
데이터 그룹 생성 GROUP BY 절 GROUP BY 절 사용할 때 적용되는 규칙
특정 칼럼 값을 기준으로 테이블의 전체 행을 그룹별로 나누기 위한 절 예를 들어, 교수 테이블에서 소속 학과별이나 직급별로 평균 급여를 구하는 경우 GROUP BY 절에 명시되지 않은 칼럼은 그룹함수와 함께 사용할 수 없음 GROUP BY 절 사용할 때 적용되는 규칙 그룹핑 전에 WHERE 절을 사용하여 그룹 대상 집합을 먼저 선택 GROUP BY 절에는 반드시 칼럼 이름을 포함해야 하며 칼럼 별명은 사용할 수 없음 그룹별 출력 순서는 오름차순으로 정렬 SELECT 절에서 나열된 칼럼 이름이나 표현식은 GROUP BY 절에서 반드시 명시 7장. 그룹 함수
11
GROUP BY 절과 SELECT절 7장. 그룹 함수
12
단일 칼럼을 이용한 그룹핑 7장. 그룹 함수
13
다중 칼럼을 이용한 그룹핑 다중 칼럼을 이용한 그룹핑
하나 이상의 칼럼을 사용하여 그룹을 나누고, 그룹별로 다시 서브 그룹을 나눔 전체 교수를 학과별로 먼저 그룹핑한 다음, 학과별 교수를 직급별로 다시 그룹핑하는 경우 그룹함수 7장. 그룹 함수
14
다중 칼럼을 이용한 그룹핑 예 7장. 그룹 함수
15
다중 칼럼을 이용한 그룹별 검색 7장. 그룹 함수
16
ROLLUP, CUBE 연산자 ROLLUP 연산자 CUBE 연산자
GROUP BY 절의 그룹 조건에 따라 전체 행을 그룹화하고 각 그룹에 대해 부분합을 구하는 연산자 GROUP BY 절에 칼럼의 수가 n개이면 ROLLUP 그룹핑 조합은 n+1개 CUBE 연산자 ROLLUP에 의한 그룹 결과와 GROUP BY 절에 기술된 조건에 따라 그룹 조합을 만드는 연산자 GROUP BY 절에 칼럼의 수가 n개이면 CUBE 그룹핑 조합은 2n개 7장. 그룹 함수
17
ROLLUP, CUBE 연산자의 개념도 ROLLUP CUBE 7장. 그룹 함수 1 202 201 2 102 4 101 소계
교수 부교수 조교수 전임강사 직급 학과 8 2 전체합계 1 202 201 102 4 101 소계 교수 부교수 조교수 전임강사 직급 학과 CUBE 7장. 그룹 함수
18
ROLLUP 연산자 예 1 7장. 그룹 함수
19
ROLLUP 연산자 예 2 7장. 그룹 함수
20
CUBE 연산자 예 7장. 그룹 함수
21
실습 CUBE 연산자를 이용하여 학과별 및 학년별 학생수, 학과별 학생수, 학년별 학생수, 전체 학생수를 출력하는 JDBC 프로그램을 작성하시오. 단 NULL 값이 존재하면 이는 출력하지 마시오. 7장. 그룹 함수
22
GROUPING 함수 GROUPING 함수
인수로 지정된 칼럼이 ROLLUP이나 CUBE 연산자로 생성된 그룹 조합에서 사용되었는지 여부를 1 또는 0으로 반환 사용하면 0, 아니면 1 7장. 그룹 함수
23
GROUPING 함수 예 7장. 그룹 함수
24
GROUPING SETS 함수 GROUPING SETS 함수 GROUP BY 절에서 그룹 조건을 여러 개 지정할 수 있는 함수
각 그룹 조건에 대해 별도로 GROUP BY한 결과를 UNION ALL한 결과와 동일 GROUPING SETS절 GROUP BY 절 GROUP BY GROUPING SETS(a, b, c) GROUP BY a UNION ALL GROUP BY b UNION ALL GROUP BY c GROUPING SETS(a, b, (b, c)) GROUP BY b, c GROUPING SETS(a, ROLLUP(b, c)) GROUP BY ROLLUP(b ,c) GROUPING SETS(a, CUBE(b, c)) GROUP BY CUBE(b, c) 7장. 그룹 함수
25
GROUPING SETS 함수 사용법 7장. 그룹 함수
26
GROUPING SETS 함수 예 JDBC를 이용한 실습 7장. 그룹 함수
27
HAVING 절 HAVING 절 HAVING 절의 실행 과정 GROUP BY 절에 의해 생성된 그룹을 대상으로 조건을 적용
테이블에서 WHERE 절에 의해 조건을 만족하는 행 집합을 선택 행 집합을 GROUP BY 절에 의해 그룹핑 HAVING 절에 의해 조건을 만족하는 그룹을 선택 WHERE절을 만족하는 행 선택 GROUP BY절에 의한 그룹핑 HAVING절을 만족하는 그룹 선택 7장. 그룹 함수
28
HAVING 절 사용법 7장. 그룹 함수
29
HAVING 절 예 JDBC를 이용한 실습 7장. 그룹 함수
30
HAVING 절과 WHERE 절의 성능 차이 HAVING 절 WHERE 절 실무 데이터베이스 관점
내부 정렬 과정에 의해 그룹화된 결과 집합에 대해 검색 조건 실행 WHERE 절 그룹화하기 전에 먼저 검색 조건 실행 실무 데이터베이스 관점 WHERE 절의 검색 조건을 먼저 실행하는 방법이 효율적 그룹화하는 행 집합을 줄여서 내부 정렬 시간을 단축 SQL 처리 성능 향상 7장. 그룹 함수
31
HAVING 절과 WHERE 절의 성능 차이 7장. 그룹 함수
32
WHERE 절에서 그룹 함수를 사용한 경우 7장. 그룹 함수
33
함수의 중첩 SQL 함수의 중첩 사용 SQL 함수 여러 개의 SQL 함수 중첩 사용 가능 중첩된 함수 처리 순서
맨 안쪽 함수부터 처리한 후, 처리 결과를 가장 가까운 바깥쪽 함수에 넘김 7장. 그룹 함수
34
SQL 함수의 중첩 사용 7장. 그룹 함수
Similar presentations