본문 바로가기
데이터베이스(DB)/SQLD

[SQLD 2-2-3] SQL 활용 - 그룹 함수

by 송기동 2024. 5. 29.
728x90

그룹 함수

- 숫자함수 중 여러값을 전달하여 하나의 요약값을 출력하는 다중행 함수

- 수학/통계 함수들(기술통계 함수)

- GROUP BY 절에 의해 그룹별 연산 결과를 리턴 함

- 반드시 한 컬럼만 전달

- NULL은 무시하고 연산


COUNT

- 행의 수를 세는 함수

- 대상 컬럼은 * 또는 단 하나의 컬럼만 전달 가능(* 사용 시 모든 컬럼의 값이 널일 때만 COUNT 제외)

- 문자, 숫자, 날짜 컬럼 모두 전달 가능

- 행의 수를 세는 경우 NOT NULL 컬럼을 찾아 세는 것이 좋음(PK 컬럼)

# 문법

COUNT(대상)

# 예제

각 컬럼의 COUNT 결과

SELECT COUNT(*), COUNT(EMPNO), COUNT(COMM)
FROM EMP;
  COUNT(*) COUNT(EMPNO) COUNT(COMM)
1 14 14 4

 

널을 포함한 컬럼은 전체 행의 수와 다르게 출력됨


SUM

- 총 합 출력

- 숫자 컬럼만 전달 가능

# 문법

SUM(대상)

AVG

- 평균 출력

- 숫자 컬럼만 전달 가능

- NULL 을 제외한 대상의 평균을 리턴하므로 전체 대상 평균 연산 시 주의

# 문법

AVG(대상)

MIN / MAX

- 최소, 최대 출력

- 날짜, 숫자, 문자 모두 가능(오름차순 순서대로 최소, 최대 출력)

# 문법

MIN(대상) / MAX(대상)

# 예제

각 컬럼의 최대, 최소

SELECT MIN(ENAME), MAX(ENAME),
	MIN(SAL), MAX(SAL),
    MIN(HIREDATE), MAX(HIREDATE)
FROM EMP;
  MIN(ENAME) MAX(ENAME) MIN(SAL) MAX(SAL) MIN(HIREDATE) MAX(HIREDATE)
1 ADAMS WARD 800 5000 1980/12/17 00:00:00 1997/03/10 00:00:00

VARIANCE / STDDEV

- 평균과 표준편차

- 표준편차는 평균값의 루트값

# 문법

VARIANCE(대상) / STDDEV(대상)

GROUP BY FUNCTION

- GROUP BY 절에 사용하는 함수

- 여러 GROUP BY 결과를 동시에 출력(합집합) 하는 기능

- 그룹핑 할 그룹의 정의(전체 소계 등)

# GROUPING SETS (A, B, ...)

- A별, B별 그룹 연산 결과 출력

- 나열 순서 중요하지 X

- 기본 출력에 전체 총계는 출력되지 X

- NULL 혹은 ( ) 사용하여 전체 총 합 출력 가능

# ROLLUP (A, B)

- A별, (A,B)별, 전체 그룹 연산 결과 출력

- 나열 대상의 순서가 중요함

- 기본적으로 전체 총 계가 출력됨

# CUBE (A, B)

- A별, B별, (A,B)별, 전체 그룹 연산 결과 출력됨

- 그룹으로 묶을 대상의 나열 순서 중요하지 않음

- 기본적으로 전체 총 계가 출력됨

728x90