GROUP BY절은 말 그대로 원하는 열(Column)을 그룹으로 묶어주는 역할을 합니다.
GROUP BY절은 WHERE, HAVING, ORDER BY와 함께 자주 사용되기 때문에 SQL 구문 순서를 잘 지켜주셔야 해요!
SQL구문 순서
SELECT 열_이름
FROM 테이블_이름
WHERE 조건식
GROUP BY 열_이름
HAVING 조건식 (GROUP BY절 기준 조건식)
ORDER BY 열_이름
LIMIT 숫자
집계 함수는 주로 GROUP BY절과 함께 자주 사용되기 때문에 꼭 기억해주시면 좋을 것 같아요.
집계함수
SUM() - 합계
AVG() - 평균
MIN() - 최소값
MAX() - 최대값
COUNT() - 개수
COUNT(DISTNCT) - 개수(단, 중복없음)
예제를 통해서 GROUP BY절 사용법을 바로 알아봐요. (feat. 집계 함수)
예제) mem_id를 그룹화를 통해서 묶고, amount의 합계를 구하기
SELECT mem_id, SUM(amount) FROM buy GROUP BY mem_id;
설명: GROUP BY로 mem_id 열을 그룹별로 묶어준 다음 SUM() 집계 함수를 통해 amount 개수를 합치는 순서예요.
예제 2) prod_name을 그룹화를 통해서 묶고, amount * price(팔린 금액)의 합계 구하기
SELECT prod_name, SUM(price * amount) FROM buy GROUP BY prod_name;
설명: prod_name 열을 그룹별로 묶어주고, SUM() 집계 함수 안에 price * amount 값을 넣고 그룹별 합계가 나온 거예요.
예제 3) mem_id을 그룹화하고, price * amount 합계 구하기 (단, amount가 5 이상)
SELECT mem_id, SUM(price * amount) FROM buy WHERE amount >= 5 GROUP BY mem_id;
설명: 해당 예제에는 조건식이 있어요. WHERE절에 해당 조건을 입력하면,
amount가 5 이상인 값들을 가지고 price * amount가 집계돼요.