DB/SQL - Oracle

[SQL] 기본 집계 함수 - min, max, variance, stddev

생각많은 프로그래머 2024. 2. 7. 15:08

집계 함수도 SQL함수의 일종으로, 

대상 데이터를 특정 그룹으로 묶은 다음

이 그룹에 대해 총합, 최댓값, 최솟값 등을 구하는 함수를 말한다. 

 

대표적인 집계함수 7가지에 대해 살펴보고자 한다.

앞서 다룬  count, sum, avg 에 대한 글은 아래 링크를 통해 확인해주세요!

https://bio-logisch.tistory.com/34

 

[SQL] 기본 집계 함수 - count, sum, avg

집계 함수도 SQL함수의 일종으로, 대상 데이터를 특정 그룹으로 묶은 다음 이 그룹에 대해 총합, 최댓값, 최솟값 등을 구하는 함수를 말한다. 대표적인 집계함수 7가지에 대해 살펴보고자 한다.

bio-logisch.tistory.com

 

 

대표적인 집계함수 7가지에 대해 살펴보고자 한다.

아래 집계함수를 활용하여 조회(select)하게 되면

결과값은 항상 숫자값인 튜플 하나가 나온다는 점도 기억하자.

각 함수에는 괄호가 붙고 그 괄호 안에는 매개변수가 들어간다는 점도 

매우 중요하다. 

집계함수(매개변수)

 

  1. COUNT  - 튜플 수 산출
  2. SUM - 합계 산출
  3. AVG - 평균 산출
  4. MIN - 최솟값 산출
  5. MAX - 최댓값 산출
  6. VARIANCE - 분산 산출
  7. STDDEV - 표준편차 산출

 

MIN - 최솟값 산출  /   MAX - 최댓값 산출

 

MINMAX 는 각각 최솟값최댓값을 반환한다. 

select min(salary), max(salary)
from member ;      - 결과값 : 3500000   8000000  

 

위와 같이 select문을 실행하면,

member 테이블의 salary 컬럼의 값 중 최소값과 최댓값이 반환된다.

두 함수에서도 DISTINCT를 사용할 수 있지만

DISTINCT를 사용해서 중복값을 제거하고

최솟값과 최댓값을 조회는 값과

그냥 최솟값과 최댓값을 바로 조회하는 경우

두 결과가 서로 같으므로 굳이 사용할 필요는 없다.

 

VARIANCE - 분산 산출  
  • VARIANCE 함수는 주어진 열의 값들의 분산을 반환한다.
  • 분산은 각 값과 평균 값의 차이를 제곱한 후, 이를 모두 합한 값의 평균이다.
  • 분산값이 0에 가까울수록 데이터가 평균 주변에 모여 있음을 의미한다.
STDDEV - 표준편차 산출
  • STDDEV 함수는 주어진 열의 값들의 표준편차를 반환한다.
  • 표준편차는 분산의 양의 제곱근으로, 데이터의 평균에서 얼마나 멀리 퍼져 있는지를 나타낸다.
  • 표준편차가 작을수록 데이터가 평균 주변에 밀집되어 있음을 의미한다.

아래와 같이 example 테이블과 비교를 위해 example2 테이블을 만들어서

각각 다른 값의 튜플 10개를 삽입하였다. 

 

 

위 내용에 근거하면, example 테이블의 point 컬럼 값이

 example2 테이블의 값들보다는 차이가 크지 않다.

 

example 테이블의 분산값이 example2 테이블과 비교하여

분산값이 0에 더 가까울 것이고, 표준편차도 더 작을 것이다.

정말 그런지 테스트해보겠다.

example 테이블의 평균, 분산, 표준편차
example2 테이블의 평균, 분산, 표준편차

 

실제 결과도 두 테이블의 point 컬럼의 평균값이 55.5 와 55로 나와서 거의 비슷한 값인데,

분산과 표준편차의 값은 이에 비해 상대적으로 큰 차이가 있었다. 

상대적으로 값들의 차이가 작았던 example 테이블의 분산값이

example2 테이블의 분산값보다

0에 더 가까웠고 0 < 285.83.. < 916.66.. 

표준편차도 대략 16.9로 example2 테이블의 표준편차 값인

30.27에 비해 더 작은 값이 반환되었다.

 

위 예시를 봤을 때 만약 평균값만 반환해서 데이터를 썼다면

두 테이블의 값들이 어떤 경향이 있는지 놓칠 수 있다.

유의미한 데이터 분석을 하기 위해서는 분산과 표준편차가

필요한 순간도 분명 있을 것이다.