집계 함수도 SQL함수의 일종으로,
대상 데이터를 특정 그룹으로 묶은 다음
이 그룹에 대해 총합, 최댓값, 최솟값 등을 구하는 함수를 말한다.
대표적인 집계함수 7가지에 대해 살펴보고자 한다.
앞서 다룬 count, sum, avg 에 대한 글은 아래 링크를 통해 확인해주세요!
https://bio-logisch.tistory.com/34
대표적인 집계함수 7가지에 대해 살펴보고자 한다.
아래 집계함수를 활용하여 조회(select)하게 되면
결과값은 항상 숫자값인 튜플 하나가 나온다는 점도 기억하자.
각 함수에는 괄호가 붙고 그 괄호 안에는 매개변수가 들어간다는 점도
매우 중요하다.
집계함수(매개변수)
- COUNT - 튜플 수 산출
- SUM - 합계 산출
- AVG - 평균 산출
- MIN - 최솟값 산출
- MAX - 최댓값 산출
- VARIANCE - 분산 산출
- STDDEV - 표준편차 산출
MIN - 최솟값 산출 / MAX - 최댓값 산출
MIN과 MAX 는 각각 최솟값과 최댓값을 반환한다.
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에 더 가까울 것이고, 표준편차도 더 작을 것이다.
정말 그런지 테스트해보겠다.
실제 결과도 두 테이블의 point 컬럼의 평균값이 55.5 와 55로 나와서 거의 비슷한 값인데,
분산과 표준편차의 값은 이에 비해 상대적으로 큰 차이가 있었다.
상대적으로 값들의 차이가 작았던 example 테이블의 분산값이
example2 테이블의 분산값보다
0에 더 가까웠고 0 < 285.83.. < 916.66..
표준편차도 대략 16.9로 example2 테이블의 표준편차 값인
30.27에 비해 더 작은 값이 반환되었다.
위 예시를 봤을 때 만약 평균값만 반환해서 데이터를 썼다면
두 테이블의 값들이 어떤 경향이 있는지 놓칠 수 있다.
유의미한 데이터 분석을 하기 위해서는 분산과 표준편차가
필요한 순간도 분명 있을 것이다.
'DB > SQL - Oracle' 카테고리의 다른 글
[SQL] 연산자 - 수식, 문자, 논리, 집합 연산자 (0) | 2024.02.09 |
---|---|
[SQL] DDL(데이터 정의어) - truncate (0) | 2024.02.08 |
[SQL] 기본 집계 함수 - count, sum, avg (0) | 2024.02.07 |
[SQL] 숫자 데이터 타입 (1) number (0) | 2024.02.06 |
[SQL] where 조건절 - Like(패턴) 방식 파헤치기 + 정규 표현식 (0) | 2024.02.03 |