본문 바로가기

SQL

[SQL] GROUP BY와 HAVING 그리고 그룹 함수

GROUP BY와 HAVING 그리고 그룹 함수

 
이번 시간에는 GROUP BY절과 HAVING절 그리고 그룹 함수에 대해서 알아보겠습니다. 각각 언제 어떻게 사용하는지 다뤄보려고 합니다.
* 패스트캠퍼스 'SQL 데이터 분석 첫걸음' 강의의 내용을 바탕으로 작성하였습니다.
 

GROUP BY


🔍 컬럼에서 동일한 값을 가지는 로우를 그룹화하는 키워드
➡️ GROUP BY [컬럼 이름] 형식으로 사용
➡️ GROUP BY가 쓰인 쿼리의 SELECT 절에는 GROUP BY 대상 컬럼그룹 함수만 사용 가능
➡️ 여러 컬럼으로 그룹화도 가능, 키워드 뒤에 [컬럼 이름]을 복수 개 입력하면 됨
➡️ 컬럼 번호로도 그룹화 가능(컬럼 번호는 SELECT 절의 컬럼 이름의 순서를 의미)
 

HAVING


🔍 가져올 데이터 그룹에 조건을 지정해 주는 키워드
➡️ HAVING 조건식 형식으로 사용(조건식이 참인 그룹만 선택해서 가져옴)
➡️ HAVING 절의 조건식에서는 그룹 함수를 활용
 

그룹 함수(집계 함수)


🔍 COUNT(*)는 그룹의 값(행)의 수를 세는 함수
(출처)

➡️  COUNT(*)는 COUNT(1)과 동일한 함수
➡️ COUNT(표현식)과는 다르게 null값도 개수에 포함
 

쿼리 실행 순서


추가로, 쿼리 실행 순서와 작성 순서에 대해 알아보겠습니다. 쿼리가 실행되는 순서와 작성되는 순서는 서로 다른데요. 다음과 같습니다.

✔️ 쿼리 실행 순서:
FROM ➡️ WHERE ➡️ GROUP BY ➡️ HAVING ➡️ SELECT ➡️ ORDER BY

✔️ 쿼리 작성 순서:
SELECT ➡️ FROM ➡️ WHERE ➡️ GROUP BY ➡️ HAVING ➡️ ORDER BY
 
이상으로 GROUP BY, HAVING, 그리고 그룹함수에 대해 알아보았습니다.