빅데이터/Oracle SQL | Do it! 오라클로 배우는 데이터베이스 입문

다중행 함수란? | SUM / COUNT / MAX / MIN / AVG

KimKelly 2023. 2. 19. 18:07
반응형

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로 중복 제거한 급여 열의 평균 구하기

반응형