MYSQL
[MYSQL] GROUP BY, HAVING 사용하기(+두가지 칼럼으로 묶기)
슈크림 붕어빵
2023. 10. 20. 15:12
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;
예를 들어 같은 아이디로 같은 상품을 구매한 경우 같이 그룹이 된다.
즉, 한 회원이 어떤 물건을 재구매한 경우를 구할 수 있다.