07 다중행 함수와 데이터 그룹화
06장에서 단일행 함수에 대해 알아보았다면, 07장에서는 다중행 함수와 SELECT문의 결과 값을 그룹으로 묶어서 사용하는 방법에 대해 배워보자.
07-1 하나의 열에 출력 결과를 담는 다중행 함수
다중행 함수란?
그룹 함수, 복수행 함수로도 불리며, 여러 행을 바탕으로 하나의 결과 값을 도출해 내기 위해 사용하는 함수
예)
*결과 값이 한 행으로 나오는 데이터와 여러 행이 나오는 데이터를 함께 명시할 경우 오류 발생.
자주 사용하는 다중행 함수
SUM | 지정한 데이터의 합 반환 |
COUNT | 지정한 데이터의 개수 반환 |
MAX | 지정한 데이터 중 최댓값 반환 |
MIN | 지정한 데이터 중 최솟값 반환 |
AVG | 지정한 데이터의 평균값 반환 |
*기본 형식은 모두 동일 (DISTINCT 또는 ALL을 지정하지 않을 경우, 기본값은 ALL.)
*NULL 값은 제외하고 계산됨.
[합계를 구하는 SUM 함수]
SUM([DISTICNT, ALL, 아무 값도 지정하지 않음 중 택 1(선택)]
[합계를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
*DISTINCT 지정 시 중복 데이터는 제외하고 계산하며, SUM 사용 시 보통 사용하지 않는 방법.
- 추가 수당 합계 구하기
*사칙연산을 이용할 때와는 달리, NULL데이터는 제외하고 합계를 구함.
- 급여 합계 구하기(DISTINCT, ALL 이용)
*DISTINCT 또는 ALL을 지정하지 않을 경우, 기본값은 ALL.
[데이터 개수를 구해 주는 COUNT 함수]
COUNT([DISTICNT, ALL, 아무 값도 지정하지 않음 중 택 1(선택)]
[개수를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
*COUNT(*) 사용 시 결과 값의 행 데이터 개수를 반환.
- EMP 테이블의 데이터 개수 출력하기
- 부서 번호가 30번인 직원 수 구하기
- 급여 개수 구하기(DISTINCT, ALL 이용)
- NULL 값을 포함하는 데이터가 있을 때
*NULL 데이터 제외하여 결과값 출력함. (위 두 SQL문의 결과 같음)
[최댓값과 최솟값을 구하는 MAX, MIN 함수]
MAX([DISTICNT, ALL, 아무 값도 지정하지 않음 중 택 1(선택)]
[최댓값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
MIN([DISTICNT, ALL, 아무 값도 지정하지 않음 중 택 1(선택)]
[최솟값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
숫자 데이터에 MAX, MIN 함수 사용하기
- 부서 번호가 10번인 사원들의 최대, 최소 급여 출력하기
날짜 데이터에 MAX, MIN 함수 사용하기
- 부서 번호가 20번인 사원의 입사일 중 제일 최근 입사일, 오래된 입사일 출력하기
[평균값을 구하는 AVG 함수]
AVG([DISTICNT, ALL, 아무 값도 지정하지 않음 중 택 1(선택)]
[평균값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
- 부서 번호가 30인 사원들의 평균 급여 출력하기
-DISTINCT로 중복 제거한 급여 열의 평균 구하기
'빅데이터 > Oracle SQL | Do it! 오라클로 배우는 데이터베이스 입문' 카테고리의 다른 글
HAVING절 | HAVING절의 기본 사용법 / 유의점 / WHERE절과 HAVING절의 차이점 (0) | 2023.02.22 |
---|---|
GROUP BY절 | GROUP BY절의 기본 사용법 / 유의점 (0) | 2023.02.20 |
[오라클로 배우는 데이터베이스 입문 | 06장 오라클 함수] 문제 풀이 (p174) (0) | 2023.02.18 |
오라클 함수 | NULL 처리 함수 (NVL / NVL2) & DECODE 함수와 CASE문 (0) | 2023.02.17 |
오라클 함수 | 형 변환 함수 (TO_CHAR / TO_NUMBER / TO_DATE) (0) | 2023.02.16 |