집계함수 총정리

dorongpark·2024년 8월 19일
0

해커랭크(sql)

목록 보기
15/20
  • 주요 포인트
    ㄴ 집계 함수에서 NULL값을 포함하는 함수인지 여부 확인하기
    ㄴ 집계 함수와 GROUP BY의 연관성 이해하기

1. 집계 함수는 NULL값을 제외 하고 값을 집계 한다

예시 데이터

  • 집계 함수별 결과 : NULL 값을 포함 하지 않고 결과 값 반영
집계 함수결과설명
COUNT(amount)3NULL을 제외한 값이 있는 행의 개수
SUM(amount)700NULL을 제외한 값들의 합계 (100 + 200 + 400)
AVG(amount)233.33NULL을 제외한 값들의 평균 (700 / 3)
MIN(amount)100NULL을 제외한 값 중 가장 작은 값
MAX(amount)400NULL을 제외한 값 중 가장 큰 값

  • NULL 을 포함하여 집계 할 수 있는 방법
집계 함수결과설명
COUNT(*)5NULL을 포함한 전체 행의 개수 (행이 존재 하면 카운팅)
SUM(COALESCE(amount, 0))700NULL을 0으로 대체하여 합계 계산

- COUNT(*) 예시

집계 함수결과설명
COUNT(*)5모든 행을 카운트, NULL 여부와 상관없이 모든 행을 포함

-COALESCE : NULL 값이 있는 경우 해당 값을 다른값으로 변환해주므로 NULL을 삭제 시켜주게 된다. 이로써 집계함수에 해당 값이 포함 될 수 있다.

집계 함수결과설명
SUM(COALESCE(age, 0))95NULL 값을 0으로 대체하여 age 값을 합산 (30 + 0 + 25 + 40 + 0)

  1. 집계 함수와 GROUP BY 함께 사용하는 경우
  • GROUP BY: 지정된 컬럼 값에 따라 데이터를 그룹화

예시 데이터

1) 부서별 급여의 합을 알고 싶은 상황

SELECT department, SUM(salary) AS total_salary
FROM employees
GROUP BY department;

2) 부서별 평균 급여를 알고 싶은 상황

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department

3) 부서별 직원 수 구하기

SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department;

profile
야 너도 분석 할수 있어

0개의 댓글