# 집계함수

대량의 데이터를 다루게 된다면, 데이터 각각의 값에 집중하기 보단 대량의 값을 요약한 수치를 이용하게 된다.

예를 들어, 모든 값의 합계인 SUM(), 평균인 AVG(), 최솟값인 MIN() 등이 존재한다.

 

 

COUNT

 

SELECT COUNT(*)        → 테이블에 존재하는 모든 행의 개수를 출력

 

<sample>

ID ProductName Price
1 cup 20
2 pencil 10
3 cup 30
4 NULL NULL

 

  • SELECT COUNT(*) FROM sample;

     → 4  (모든 행의 개수를 출력)

  • SELECT COUNT(ProductName) FROM sample;

     → 3  (NULL을 제외한 행의 개수를 출력)

  • SELECT COUNT(DISTINCT ProductName) FROM sample;

    → 2  (NULL을 가진 행을 제외하고, ProductName 컬럼에서 'cup'인 행이 두 개이므로 하나의 행을 제외한 나머지 행의 개수를 출력)

 

 

SUM

 

SELECT SUM(score)    → 숫자 데이터를 가진 score 컬럼의 합계를 출력

 

 

AVG

 

SELECT AVG(score)    → 숫자 데이터를 가진 score컬럼의 평균을 출력

 

<sample>

ID Name Score
1 A 90
2 B 85
3 C 76
4 C 79
5 NULL NULL

 

  • SELECT AVG(score) FROM sample;

    → (90+85+76+79) / 4 = 82.5     [NULL을 없는 값으로 취급]

  • SELECT SUM(score) / COUNT(*) FROM sample;

    → (90+85+76+79) / 5 = 66      [NULL을 숫자 0으로 취급]

 

 

MIN, MAX

 

SELECT MIN(score)    → score컬럼의 최솟값을 출력
SELECT MAX(score)    → score 컬럼의 최댓값을 출력

 

  • 문자열에서도 사용 가능하다.
  • 문자열일 경우, 데이터 정렬 순서에 따른다.
    • 한글 : 자음 < 모음 < 한글
    • 영문 : 대문자 < 소문자

 

 


 

 

↘↘↘

[백문이불여일타] 데이터 분석을 위한 중급 SQL

https://www.inflearn.com/course/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%A4%91%EA%B8%89-sql

'📖 STUDY > SQL' 카테고리의 다른 글

[SQL] CASE  (0) 2022.03.08
[SQL] GROUP BY, HAVING  (0) 2022.03.08
[SQL] review_HackerRank  (0) 2022.03.04
[SQL] CEIL, FLOOR, ROUND  (0) 2022.03.04
[SQL] LEFT, RIGHT, SUBSTRING  (0) 2022.03.04

+ Recent posts