Download presentation
Presentation is loading. Please wait.
1
요약 정보 만들기
2
지정된 개수의 행 가져오기 Top n 상위 n 행 가져오기 형식
SELECT TOP n * FROM 테이블명 ORDER BY 열
3
SELECT TOP 2 * FROM Emp Order by sal
지정된 개수의 행 가져오기 Top n 예제 SELECT TOP 2 * FROM Emp Order by sal
4
지정된 개수의 행 가져오기 Top n 활용 이름순으로 내림차순 정렬 했을 때 상위 5명의 모든 데이터를 검색하시오.
부서번호를 오름차순 정렬하여 상위 5명의 모든 데이터를 검색하되 같은 순위의 데이터도 모두 가져오시오.
5
집계함수 사용하기 집계함수 함수 표현식 AVG(expression) 표현식의 전체나 각각의 평균값
COUNT(expression) 표현식 전체나 각각의 개수 COUNT(*) 선택된 모든 행의 개수 MAX(expression) 표현식에서 가장 큰 값 MIN(expression) 표현식에서 가장 작은값 SUM(expression) 수치 표현식에서 전체나 각각의 합계
6
COUNT ( * | ALL 수식 | DISTINCT 수식 )
집계함수 사용하기 COUNT 함수 행의 개수를 돌려준다. 형식 COUNT ( * | ALL 수식 | DISTINCT 수식 ) * 는 행 전체의 개수를 돌려 주고 ALL은 NULL이 아닌 값을 가지는 모든 수식의 개수를 돌려 주고, DISTINCT는 NULL이 아닌 고유한 값을 가지는 수식의 개수를 돌려 준다.
7
Select COUNT (*) From Emp Select count (all comm) From Emp
집계함수 사용하기 COUNT 함수 예제 Select COUNT (*) From Emp Select count (all comm) From Emp Select count (distinct comm) From Emp
8
SUM / AVG ( ALL 수식 | DISTINCT 수식 )
집계함수 사용하기 SUM / AVG 함수 열 값들의 합계 및 평균값을 돌려주는 함수이다. 형식 SUM / AVG ( ALL 수식 | DISTINCT 수식 ) ALL은 NULL이 아닌 값을 가지는 모든 수식의 합계 또는 평균값을 돌려주고, DISTINCT는 NULL이 아닌 고유한 값을 가지는 수식의 합계 또는 평균값을 돌려준다. (생략할 때는 ALL 적용).
9
Select SUM(sal) From Emp Select AVG(sal) From Emp
집계함수 사용하기 SUM / AVG 함수 예제 Select SUM(sal) From Emp Select AVG(sal) From Emp
10
집계함수 사용하기 MIN / MAX ( 수식 ) MIN / MAX 함수 열 값들 중에서 최소값 또는 최대값을 돌려주는 함수.
형식 MIN / MAX ( 수식 )
11
Select MIN(sal), MAX(sal) From Emp
집계함수 사용하기 MIN / MAX 함수 예제 Select MIN(sal), MAX(sal) From Emp
12
집계함수 사용하기 집계함수 활용 Emp에서 deptno가 20인 사람의 sal값의 평균을 구하시오.
Emp에서 job이 analyst인 사람의 수를 세시오. Emp에서 empno가 가장 큰사람의 empno는? Emp에서 comm값이 가장 작은 사람의 comm값? Emp에서 봉급의 합계를 구하시오.
13
Group by 절 기초 GROUP BY 절 GROUP BY 절은 특정 열(들)을 그룹화하고 집계 및 요약하기 위해 SELECT 문에 포함하여 사용 데이터를 그룹화해서 값을 집계할 필요가 있는 경우, 예를 들어 학생들의 나이별, 출신 지역별, 성적별로 인원 수나 합계, 평균값 등을 구하는 경우에 필요하다.
14
Group by 절 기초 GROUP BY 절
15
Group by 절 기초 SELECT 열목록 from 테이블명 [Where 조건] Group by 필드명, …
형식 SELECT 열목록 from 테이블명 [Where 조건] Group by 필드명, … [having 조건] 필드명 : 그룹화의 기준이 됨 ORDER BY 절을 이용하여 그룹화할 열(들)을 정렬해야 한다.
16
SELECT job, SUM(sal) as ‘합계’ From Emp Group by job
예제 1. SELECT job, sal From Emp Order by job SELECT job, SUM(sal) as ‘합계’ From Emp Group by job
17
2. SELECT job, deptno, sal From Emp Order by job, deptno
Group by 절 기초 GROUP BY 절 예제 2. SELECT job, deptno, sal From Emp Order by job, deptno SELECT job, deptno, SUM(sal) From Emp Group by job, deptno
18
Group by 절 기초 GROUP BY 절 활용 Emp에서 job별 인원수 Emp에서 deptno별 최근 입사일
Emp에서 job별 sal의 합계 Emp에서 deptno별 sal의 평균 Emp에서 ‘pre’로 시작되는 job을 제외한 나머지 job에 대해서 job별로 월급의 총계를 구하시오.
19
SELECT job, sum(sal) as ‘급여합’ From Emp
Group by 절 기초 Group by ALL Where절에서 제외된 것이라고 할지라도 결과에 포함시킴 예제 SELECT job, sum(sal) as ‘급여합’ From Emp Where deptno >= 20 Group by ALL job
20
Group by 절 기초 Group by ALL 활용
Emp에서 ‘pre’로 시작되는 job을 제외한 나머지 job에 대해서 job별로 월급의 총계를 구하시오. (제외된 job 이라도 포함하여 구하시오.) 부서번호가 20이하인 사람을 찾아 job별로 comm값의 총계를 구하시오. (제외된 job 이라도 포함하여 구하시오.)
21
Group by 절 기초 SELECT 열목록 from 테이블명 Group by 필드명, … [having 조건]
WHERE 절이 SELECT 문에 의해 만들어지는 행을 제약하는 것과 비슷한 관계다. 형식 SELECT 열목록 from 테이블명 Group by 필드명, … [having 조건] 열 목록에 나오는 집계식을 포함할 수 있다.
22
SELECT job, SUM(sal) as ‘합계’ From Emp Group by job
HAVING 절 예제 SELECT job, SUM(sal) as ‘합계’ From Emp Group by job Having sum(sal) >= 5000 Order by job
23
결과 집합에서 요약정보 만들기 ROLLUP 연산자 GROUP BY 절의 일부로 사용되며, 집계 값을 요약하는 데 사용
부분합과 합계가 포함된 결과 집합을 만들 때 유용
24
결과 집합에서 요약정보 만들기 ROLLUP 연산자 예제 SELECT buyer_id, product_id, SUM(qty) FROM orders GROUP BY buyer_id, product_id With Rollup
25
결과 집합에서 요약정보 만들기 ROLLUP 연산자 예제
26
결과 집합에서 요약정보 만들기 CUBE 연산자 더 완전하게 요약해줌
모든 가능한 조합에 대해 집계 값들을 요약한 추가적인 행을 만들어준다.
27
결과 집합에서 요약정보 만들기 CUBE 연산자 예제 SELECT buyer_id, product_id, SUM(qty) FROM orders GROUP BY buyer_id, product_id With Cube
28
결과 집합에서 요약정보 만들기 CUBE 연산자
29
결과 집합에서 요약정보 만들기 GROUPING 함수
ROLLUP, CUBE 연산자가 돌려주는 추가적인 요약 행에는 열이 요약되었음을 나타내는 NULL(들)이 포함되어 있다. 위 NULL은 집계열의 NULL과 혼동될 소지가 크다. SELECT 문의 열 목록에서 GROUPING 함수를 사용하면 된다. 해당 열이 요약되었을 경우에는 1을 돌려주고, 요약되지 않았을 경우에는 0을 돌려준다.
30
결과 집합에서 요약정보 만들기 GROUPING 함수 예제
SELECT buyer_id, GROUPING(buyer_id) AS ‘바이어GR', product_id, GROUPING(product_id) AS ‘제품GR', SUM(qty) AS ‘수량합‘ FROM orders GROUP BY buyer_id, product_id With CUBE
31
결과 집합에서 요약정보 만들기 GROUPING 함수
32
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY Group by절
그룹에 대한 부분 집계를 볼 수 있었으나 상세 내역은 볼 수 없었다. Compute / compute by문 상세내역과 그룹별 집계를 모두 한꺼번에 보여줄 수 있다. Group별 요약 정보를 생성한다. 상세 행과 요약 행을 한꺼번에 작성할 수 있다. 정렬된 행들에 대한 요약 보고서를 작성하는데 사용
33
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 제약사항
COMPUTE절에 있는 열이름은 반드시 SELECT 열목록에 나타나야 COMPUTE BY는 반드시 ORDER BY와 함께 사용해야 COMPUTE BY절에 나타나는 열이름들은 ORDER BY절에 나타나는 열이름들과 같거나 순서가 일치해야 한다.
34
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 형식 SELECT 열목록 from 테이블명 [where 조건 ] [ order by 열목록] COMPUTE 집계함수(열이름) [,집계함수(열이름)] [BY 열이름 [, 열이름]…… ]
35
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 예
36
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 예제 Compute 절을 이용하여 emp 테이블에서 20이상의 deptno로 그룹화된 sal 열에 대한 합계로 최종 요약을 하시오. SELECT deptno , sal FROM emp WHERE deptno >= 20 ORDER BY deptno, sal COMPUTE sum(sal)
37
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 예제 Compute by절을 이용하여 emp 테이블에서 20이상의 deptno로 그룹화된 sal 열에 대한 합으로 중간요약을 하시오. SELECT deptno , sal FROM emp WHERE deptno >= 20 ORDER BY deptno, sal COMPUTE sum(sal) BY deptno
38
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 활용
compute절을 사용하여 emp에서 20이상의 deptno별 sal의 열에 대한 평균으로 최종 요약하시오. compute by절을 이용하여 emp에서 20이상의 deptno별 sal의 열에 대한 평균으로 중간요약을 하시오.
39
결과 집합에서 요약정보 만들기 ORDER BY a, b, c Order by와 compute by절
COMPUTE 집계함수(열이름) BY a, b, c COMPUTE 집계함수(열이름) BY a, b COMPUTE 집계함수(열이름) BY a ORDER BY a, b, c
40
결과 집합에서 요약정보 만들기 ORDER BY a, b, c Order by와 compute by절
COMPUTE 집계함수(열이름) BY b, c COMPUTE 집계함수(열이름) BY a, c COMPUTE 집계함수(열이름) BY b COMPUTE 집계함수(열이름) BY c ORDER BY a, b, c
41
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 활용 1.
42
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 활용 2.
43
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 활용 3.
44
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 활용 4.
45
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 활용 5.
46
결과 집합에서 요약정보 만들기 COMPUTE / COMPUTE BY 활용 6.
Similar presentations