이 글은 SQLD를 공부하며 GROUP BY
문과 SELECT
문의 실행 순서에 대한 내용을 정리한 글이다.
GROUP BY문
GROUP BY문 사용
GROUP BY
문은 테이블에서 소규모 행을 그룹화하여 합계, 평균, 최댓값, 최솟값 등을 계산할 수 있음HAVING
절에 조건문을 사용- Grouping된 결과에 대한 조건문을 사용
ORDER BY
를 사용해서 정렬 가능
SELECT DEPTNO, SUM(AGE)
FROM STUDENT
GROUP BY DEPTNO;
SELECT
절에 Group으로 묶을 Column과 집계함수 입력FROM
절에 원하는 TABLE 입력GROUP BY
절에 Group으로 묶을 Column 입력
위 코드의 실행 결과로 아래와 같은 결과롤 도출함
HAVING문 사용
GROUP BY
에 조건절을 사용하려면HAVING
을 사용해야 함- 만약
HAVING
이 아니라WHERE
을 이용하여 조건문을 사용하면, 조건을 만족하지 못하는 데이터는GROUP BY
대상에서 제외됨
SELECT DEPTNO, SUM(AGE)
FROM STUDENT
GROUP BY DEPTNO
HAVING SUM(AGE) > 22;
WHERE
을 이용하여 조건을 추가하면 아래와 같은 결과를 얻을 수 있음
SELECT DEPTNO, SUM(AGE)
FROM STUDENT
WHERE AGE > 22
GROUP BY DEPTNO;
집계 함수 종류
COUNT()
- 행 수를 조회
COUNT(Column_name)
은 NULL 값을 제외한 행 수를 계산하며,COUNT(*)
은 NULL 값을 포함한 모든 행의 수를 계산함
SUM()
- 합계를 계산
AVG()
- 평균을 계산
MAX()
&MIN()
- 각각 최댓값과 최솟값을 계산
STDDEV()
- 표준편차를 계산
VARIANCE()
- 분산을 계산
SELECT문 실행 순서
- SQL의 실행 순서는 결과로 조회된 데이터를 이해하는데 중요한 역할을 함
SELECT
문의 실행 순서는FROM
,WHERE
,GROUP BY
,HAVING
,SELECT
,ORDER BY
순으로 실행됨- 실행 순서가 SQL의 입력 순서는 아님
Reference
1. 2024 이기적 SQL 개발자 이론서 + 기출문제 / https://product.kyobobook.co.kr/detail/S000212055970
'Data Science > SQL' 카테고리의 다른 글
SQLD | SQL 활용 - 서브쿼리(Subquery) (0) | 2024.03.02 |
---|---|
SQLD | SQL 기본 - DECODE문, CASE문, 그리고 WITH구문 (0) | 2024.03.02 |
SQLD | SQL 기본 - NULL의 특징과 NULL 값 조회 (2) | 2024.03.01 |
SQLD | SQL 기본 - WHERE문 (with. LIKE, BETWEEN, IN) (0) | 2024.02.29 |
SQLD | SQL 기본 - SELECT문 (with. ORDER BY, DISTINCT, Alias) (1) | 2024.02.29 |