정리 노트

집계 함수 본문

개념 정리/데이터베이스

집계 함수

꿈만 꾸는 학부생 2024. 6. 25. 21:31
728x90

DML 문을 연습할 데이터 베이스는 아래의 사이트에서 스크립트를 다운로드하여 실행해 생성했습니다.

 

MySQL Sample Database

This page provides you with a MySQL sample database that helps you to practice with MySQL effectively and quickly.

www.mysqltutorial.org


이번 포스트에서는 SQL에서 제공하는 집계 함수들에 대해 알아보겠습니다.

이 함수들이 SELECT 절과 나중에 작성할 HAVING 절, ORDER BY 절에서 적용할 수 있기 때문입니다.

집계 함수는 여러 행들의 그룹이 모여(GROUP BY 절로) 그룹당 단 하나의 결과만을 돌려주는 함수입니다.

 

아래 사이트에서 MySQL을 기준으로 전체적인 집계 함수 설명을 보여주고 있습니다. 이 포스트에서는 자주 사용하는 집계 함수들만 선정해 작성하겠습니다.

 

MySQL :: MySQL 8.0 Reference Manual :: 14.19.1 Aggregate Function Descriptions

MySQL 8.0 Reference Manual  /  ...  /  Functions and Operators  /  Aggregate Functions  /  Aggregate Function Descriptions 14.19.1 Aggregate Function Descriptions This section describes aggregate functions that operate on sets of values. They are

dev.mysql.com

COUNT

COUNT 함수는 행의 수를 반환하는 집계 함수입니다. 인자로 열의 이름을 주면 열의 값이 NULL인 것을 제외한 행의 수, '*' 기호를 인자로 주면 NULL 값을 가진 행을 포함한 전체 행의 수를 출력합니다.

SELECT COUNT(*) FROM orders;  // 전체 행의 수 출력
SELECT COUNT(shippedDate) FROM orders;  // 해당 열 값이 NULL이 아닌 행의 수 출력

왼쪽의 결과를 보면 orders 테이블의 전체 행의 수가 326개임을 알 수 있습니다. 오른쪽 결과를 통해 shippedDate 열의 값이 NULL이 아닌 행의 수는 312개로 일부 데이터에 NULL 값이 있음을 알 수 있습니다.

SUM / AVG

SUM, AVG 집계 함수는 각각 합계, 평균을 계산하는 집계 함수입니다. 인자로 열의 이름을 주고, 열의 값들의 합계와 평균을 계산해 반환합니다.

SELECT SUM(orderNumber) AS '주문 수 합계' FROM orders;
SELECT ROUND(AVG(orderNumber), 1) AS '주문 수 평균' FROM orders;

왼쪽의 사진으로 orderNumber 열의 값들의 합을 계산한 결과를 얻을 수 있고, 오른쪽 사진으로 열의 평균을 계산하여 얻을 수 있습니다.

두 번째 SQL 문에서 ROUND 함수를 사용해 소수점 한 자리만 표시했습니다.

MIN / MAX

MIN, MAX 집계 함수는 각각 최소, 최대를 출력하는 집계 함수입니다. 이 함수 또한 인자로 열의 이름을 주고, 열의 값들 중 최솟값과 최댓값을 계산해 반환합니다.

SELECT CAST(MIN(creditLimit) AS UNSIGNED) AS '최소 creditLimit' FROM customers;
SELECT CAST(MAX(creditLimit) AS UNSIGNED) AS '최대 creditLimit' FROM customers;

왼쪽의 사진으로 creditLimit 열의 값 중 최솟값을, 오른쪽 사진으로 최댓값을 얻을 수 있습니다.

각 SQL 문에서 CAST 문을 사용해 정수형으로 결과를 표시했습니다.

728x90

'개념 정리 > 데이터베이스' 카테고리의 다른 글

ORDER BY 절  (0) 2024.07.02
GROUP BY, HAVING 절  (0) 2024.07.01
SQL 단일 행 내장 함수들  (0) 2024.04.18
SELECT문 WHERE절  (4) 2024.02.28
SELECT문  (2) 2024.02.08