본문 바로가기
SQL

[SQL] 다중행 함수와 데이터 그룹화_1

by lmyourpearl 2025. 12. 1.

하나의 열에 출력 결과를 담는 다중행 함수

 

그룹 함수 또는 복수행 함수라고도 하는 다중행 함수(multiple-row function)는 여러 행을 바탕으로 하나의 결괏값을 도출할 때 사용함.

SELECT SUM(SAL)
	FROM EMP;

 

다중행 함수는 여러 행을 입력하여 하나의 행으로 결과를 출력하는 특징이 있는데 이러한 특징 때문에 다중행 함수를 사용한 SELECT절에는 기본적으로 결과가 여러 행일 수 있는 열(함수: 연산자를 사용한 데이터도 포함)은 함께 사용할 수 없음.

함수 설명
SUM 지정한 데이터의 합을 반환
COUNT 지정한 데이터의 개수를 반환
MAX 지정한 데이터 중 최댓값을 반환
MIN 지정한 데이터 중 최솟값을 반환
AVG 지정한 데이터의 평균값을 반환

 

합계를 구하는 SUM 함수

SUM([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
    [합계를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
-- 합계를 구해 반환


SUM([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
    [합계를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석할 때 사용할 여러 문법 지정)(선택)
-- OVER절은 데이터를 좀 더 깊이 있게 분석할 때에 한해 사용.


SELECT SUM(COMM)
	FROM EMP;
-- SUM 함수는 NULL 데이터는 제외하고 합계를 구하므로 별다른 문제 없이 결과 출력

 

SUM 함수와 DISTINCT, ALL 함께 사용하기

SELECT SUM (DISTINCT SAL),
       SUM (ALL SAL),
       SUM (SAL)
  FROM EMP;

** ALL을 사용한 결과와 아무 옵션을 지정하지 않은 SUM함수의 결과는 같지만, SUM 함수에 DISTINCT 를 지정하면 결괏값이 같은 데이터는 합계에서 한번만 사용하기 때문에 결과가 다름.

DISTINCT는 중복 데이터는 제외하고 계산. (잘 안쓰임)

 

데이터 개수를 구하는 COUNT함수

데이터 개수를 출력할 때 사용하며, COUNT함수에 *을 사용하면 SELECT문의 결괏값으로 나온 행 데이터의 개수를 반환.

COUNT([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
   [개수를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석할 때 사용할 여러 문법 지정)(선택)
-- 결과 행의 개수를 출력

SELECT COUNT(*)
	FROM EMP;

 

데이터의 개수는 “행(Row)”의 개수를 의미

함수 의미 NULL 포함 여부
COUNT(*) 전체 행 수 포함
COUNT(열이름) 특정 열의 값이 있는 행 수 NULL은 제외
COUNT(DISTINCT 열이름) 특정 열의 중복 제거 후 값이 있는 행 수 NULL은 제외

 

COUNT함수와 DISTINCT, ALL 함께 사용

SELECT COUNT(DISTINCT SAL),
    COUNT(ALL SAL),
    COUNT(SAL)
  FROM EMP;
  
-- COUNT(DISTINCT SAL)
→ 중복을 제거한(서로 다른) 급여 값의 개수만 셉니다. 역시 NULL은 제외됩니다.

 

-- COUNT 함수를 사용하여 추가 수당 열 개수 출력하기
SELECT COUNT(COMM)
FROM EMP;
-- NULL 데이터는 반환 개수에서 제외함.

-- COUNT 함수와 IS NOT NULL을 사용하여 추가 수당 열 개수 출력하기
SELECT COUNT(COMM)
FROM EMP
WHERE COMM IS NOT NULL;