본문 바로가기
MYSQL

[MYSQL] GROUP BY, HAVING 사용하기(+두가지 칼럼으로 묶기)

by 슈크림 붕어빵 2023. 10. 20.

GROUP BY는 특정 조건으로 묶을 때 사용한다.

주로 집계함수와 함께 사용한다. 어떤 칼럼일 때 AVG, COUNT, SUM 등을 구할 때 유용하다.

 

 

예를 들어 한 회원이 구매를 몇번 했는지 구하는 예이다.

SELECT USER_ID, COUNT(*) FROM ONLINE_SALE GROUP BY USER_ID

 

다음으로 한 회원이 구매한 가격을 알아볼 수 있는 예이다. 

SELECT USER_ID, SUM(PRICE) FROM ONLINE_SALE GROUP BY USER_ID

 

다음으로는 100000원이상 구매한 회원을 고르는 예이다.

SELECT USER_ID, SUM(PRICE) 
FROM ONLINE_SALE 
GROUP BY USER_ID 
HAVING SUM(PRICE)>=2

 

USER_ID와 PRODUCT_ID로 묶어서 묶은 수가 2개 이상인 경우를 찾는 코드이다. 즉 재구매한 경우를 보여주는 예이다.


SELECT USER_ID, PRODUCT_ID 
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*)>=2
ORDER BY USER_ID, PRODUCT_ID DESC;

예를 들어 같은 아이디로 같은 상품을 구매한 경우 같이 그룹이 된다.

즉, 한 회원이 어떤 물건을 재구매한 경우를 구할 수 있다.