https://school.programmers.co.kr/learn/courses/30/lessons/131536
SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE
GROUP BY USER_ID
HAVING COUNT(PRODUCT_ID)>=2
ORDER BY 1, 2 DESC;
HAVING은 GROUP BY에 조건을 걸어주는 것.
근데 이렇게 하면 USER_ID로 그룹이 묶이고 HAVING문에서는 그저 행 갯수를 카운트 하는거라서 의미가 없음.
내가 의도한건 USER_ID 별로 각 PRODUCT_ID 별 COUNT였음.
문제에서 의도한 것 처럼 같은 사용자가 같은 물건을 구매한 횟수를 세려면 아래와 같이 USER_ID, PRODUCT_ID 두개로 그룹화를 해줘야한다.
SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(PRODUCT_ID)>=2
ORDER BY 1, 2 DESC;
이렇게 해야 같은 사용자가 같은 물건을 구매한 횟수를 COUNT해 조회할 수 있음
여기서 COUNT는 PRODUCT_ID가 아니라 USER_ID여도 된다.