2022. 6. 30. 17:44ㆍCS/데이터 베이스
GROUP 함수
특정 조건에 맞춰 그루핑을 함.
COUNT : 행의 갯수를 반환
학과번호가 101번인 교수의 수를 구하라.

교수 테이블에서 중복되지 않은 직업의 개수를 가져와라.

AVG : 표현식의 평균
SUM : 표현식의 합

MIN : 최소 값
MAX : 최대 값

STDDEV : 표준편차
VARIANCE : 분산

emp 테이블에서 월급의 max값과 min값, sum값, avg값을 구하시오

GROUP BY
주의 사항
1. 그루핑 전에 WHERE 절을 사용하여 그룹 대상 집합을 먼저 선택.
2. 별명 사용 불가능
3. 오름차순으로 정렬
4. GROUP BY 절에서 사용하지 않은 칼럼은 SELECT에서 가져올 수 없다. (그룹 함수 제외)
사용 예

다중 칼럼
학생을 학과별 학년별로 나누어 보자

ROLLUP : 소계

그룹 별로 소계 출력

CUBE : 소계 전체

GROUPING SETS

를

로 짧게 만들 수 있다.
함수 문제 예제
1. 사원 테이블(EMP)에서
최대 급여와 최소 급여 사이의 차이를 출력하는 질의를 작성하세요. 열레이블은 DIFFERENCE입니다.


2. 사원명, 입사일 그리고 입사한 요일을 출력하세요. 열 레이블은 DAY 입니다.
(***결과는 월요일부터 시작하는 요일 순으로 정렬하세요.)
ENAME HIREDATE DAY
-------------------- -------- ------------------------
ADAMS 87/07/13 월요일
SCOTT 87/07/13 월요일
MARTIN 81/09/28 월요일
CLARK 81/06/09 화요일


3. 1980, 1981, 1982, 1987년에 입사한 사원에 대해 전체 사원 수와 연도별 사원 수를 출력하세요.
TOTAL 1980 1981 1982 1987
---------- ---------- ---------- ---------- ----------
14 1 10 1 2


HAVING 절
GROUP BY 로 그룹화를 할 때 조건을 걸고 싶을 때 사용
예시
사원 테이블에서 평균 급여가 1900 이상인 부서의
부서 번호, 부서별 평균 급여를 출력하세요.


예시
1000이상 급여를 받는 사원들에 대해 부서별 평균 급여가 1900이상인 부서의 부서 번호, 부서별 평균 급여를 출력하세요.


WHERE절에서 먼저 필터링하는 것이 더욱 효율적
'CS > 데이터 베이스' 카테고리의 다른 글
| SQL 서브쿼리 (0) | 2022.07.04 |
|---|---|
| 데이터 조작어 (Data Manipulation Language, DML) (0) | 2022.07.04 |
| SQL 함수 4 (일반 함수) (0) | 2022.06.30 |
| SQL 함수 3 (데이터 타입 변환, NLS_LANGUAGE 변경하는 법) (0) | 2022.06.30 |
| SQL 함수 2 (숫자 함수, 날짜 함수) (0) | 2022.06.30 |