어제에 이어 데이터 분석을 위해 알아야 할 쿼리 명령어를 쉽게 간단 정리해보자.
GROUP BY, HAVING, ORDER BY는 "선택 구문"이다.
순서
1. GROUP BY 구
2. HAVING 구
3. ORDER BY 구
4. 가상 연습문제로 이해 체크 (난이도 하)
📌 그룹함수
함수종류 | 정의 | 참고 |
---|---|---|
COUNT | '행'의 개수 | 데이터 NULL인 경우도 COUNT |
SUM | 합계 | NULL 값 제외하고 연산 |
AVG | 평균 | NULL 값 제외하고 연산. BUT, NULL값 포함해 평균 계산하고 싶다면 NULL을 0으로 채워줘야 함 |
MAX | 최댓값 | NULL 값 제외하고 연산 |
MIN | 최솟값 | NULL 값 제외하고 연산 |
STDDEV | 표준편차 | NULL 값 제외하고 연산 |
VARIANCE | 분산 | NULL 값 제외하고 연산 |
⭐ WHERE절과 헷갈리지 않게 조심하기 ⭐
Q. ORDERS라는 테이블에서 2021년의 데이터만 추려내어 각 월의 카테고리별 주문금액이 10000원 이상인 경우를 찾아 월, 카테고리, 총주문금액을 산출하고 날짜별로 정렬해보아라.
(orders라는 테이블이 있다고 가정)
SELECT MONTH(ORDER_DATE) AS 월, CATEGORY, SUM(UNIT_PRICE) AS 총주문금액
FROM ORDERS
WHERE ORDER_DATE >= '2021-01-01'
GROUP BY MONTH(ORDER_DATE), CATEGORY
HAVING SUM(UNIT_PRICE) >= 10000
ORDER BY 1;
이 정도의 구만 알고 있어도 몇 번 연습하다보면 간단한 분석은 가능하다. 여기서 더해서 이제 sql의 꽃이라고 불리는 join과 서브쿼리 등을 곁들인다면 매우 다양한 분석을 할 수 있다.
그만큼 복잡하기도 하지만 본격적이라 개인적으로 공부하면서 재미를 느꼈었다.