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, 그리고 그룹함수에 대해 알아보았습니다.
'SQL' 카테고리의 다른 글
[패스트캠퍼스] SQL로 시작하는 데이터 분석 첫걸음 강의 학습 후기 (1) | 2024.02.28 |
---|---|
[MySQL] UTC 시간대, date_format() 결과값이 다른 이유 (0) | 2024.02.21 |
[SQL] 합집합, 교집합, 차집합(MySQL) (1) | 2024.02.09 |
[SQL] 데이터, 데이터베이스 그리고 DBMS (0) | 2024.01.25 |
[SQL] SQLD 자격시험 (1) | 2024.01.25 |