지극히 개인적인 공부 노트/데이터베이스(Database)

[SQL] 기초적인 SQL 내장 함수(feat. COUNT, SUM, AVG, MAX, MIN, GROUP BY)

AS J 2021. 9. 14. 21:05

SQL에도 데이터나 행의 그룹의 값을 계산하거나, 조작하는 함수가 존재하는데, 이 글에는 아주 기초적인 SQL 내장 함수를 코드 작성 방법만 간단하게 정리했다.

 

COUNT

검색한 결과의 데이터 개수를 가져오는 내장 함수

SELECT COUNT(COL) FROM myData;  -- 특정 컬럼 COL의 레코드 개수
SELECT COUNT(*) FROM myData;  -- 모든 컬럼의 데이터 개수. 즉 데이터의 전체 크기를 파악

 

SUM

지정한 컬럼의 값을 모두 더하여 총합을 구하는 내장 함수

SELECT SUM(COL) FROM myData;  -- 컬럼 COL에 대한 합계

 

AVG

지정한 컬럼의 값의 평균값을 구하는 내장 함수

SELECT AVG(COL1), AVG(COL2), AVG(COL3) FROM myData;  -- 원하는 여러 개의 컬럼 각각의 평균을 구할 수 있음.

 

MAX & MIN

테이블에 존재하는 데이터의 최댓값, 최솟값을 가져오는 내장 함수

SELECT MAX(COL) FROM myData;  -- 컬럼 COL의 최대값
SELECT MIN(COL) FROM myData;  -- 컬럼 COL의 최소값

 

GROUP BY / HAVING

데이터를 특정 컬럼에 대해 그룹을 지어주는 함수이며, LIMIT, ORDER BY처럼 주로 SELECT문의 맨 끝에 위치한다. HAVING은 생략 가능하며, 데이터 그룹에 조건을 적용하고 싶은 경우에 작성한다. 사용 예시는 아래와 같다.

-- GROUP BY
-- 특정 컬럼 COL에 대해 데이터의 개수 출력
SELECT COL, COUNT(*) FROM myData GROUP BY COL;

-- 특정 컬럼 COL1에 대해 COL2의 합계 출력
SELECT COL1, SUM(COL2) FROM myData GROUP BY COL1;

-- 특정 컬럼 COL1에 대해 COL2의 평균 출력
SELECT COL1, AVG(COL2) FROM myData GROUP BY COL1;

-- 특정 컬럼 COL1에 대해 COL2의 최대값 출력
SELECT COL1, MAX(COL2) FROM myData GROUP BY COL1;

-- 특정 컬럼 COL1에 대해 COL2의 최소값 출력
SELECT COL1, MIN(COL2) FROM myData GROUP BY COL1;

-- GROUP BY / HAVING
-- 특정 컬럼 COL에 대해 데이터 개수를 기준으로 그룹화를 하되, 개수가 1보다 큰 경우만 출력
SELECT COL, COUNT(*) FROM myData GROUP BY COL HAVING COUNT(COL) > 1;