728x90
📚문제
📝풀이
SELECT USER_ID
, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID,PRODUCT_ID
HAVING COUNT(*) >= 2
ORDER BY USER_ID, PRODUCT_ID DESC
USER_ID와 PRODUCT_ID로 그룹화 한것까지는 잘 됐는데
HAVING절 사용법에서 잠깐 헷갈렸다
WHERE절과의 차이점은 알고있는데 이렇게 한 번 헷갈리면 머릿속이 꼬이는 느낌
"GROUP화가 완료된 데이터들"에 대해서만 조건으로 필터링
(GROUP화된 데이터 안의 컬럼 사용해야함)
(+ 근데 GROUP화만 하고 모든행을 살펴보면 HAVING COUNT(*)>=2인 경우가 USER_ID =15,119인데
같은 물품을 2번주문한 기록이 없는데 왜 정답인지 모르겠다)
HAVING절에 대한 내용 찾아보다가 내가 찾고 있던 내용이 있어서 가져와봤다
이미 GROUP화 된 컬럼에 대해서는 몇개가 묶인건지 알 길이 없는데
HAVING과 집계함수를 사용하여 알 수 있다
(사실 그래도 좀 헷갈리지만... 많이 해봐야 될 것 같다)
SELECT USER_ID
, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID,PRODUCT_ID
HAVING COUNT(*) >= 2
ORDER BY USER_ID, PRODUCT_ID DESC
몇달 전까지만 해도 HAVING 사용법이 헷갈려서 블로그에 작성해놓았는데
지금 풀어보니까 바로 풀린다...
신기하네
역시 꾸준히 하면 조금씩 나아지는구나
앞으로도 계속 열심히 해야겠다
728x90
'SQL > 프로그래머스 SQL 고득점 kit' 카테고리의 다른 글
SQL 고득점 Kit / GROUP BY / 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 / MySQL (0) | 2023.10.27 |
---|---|
SQL 고득점 kit / GROUP BY / 즐겨찾기가 가장 많은 식당 정보 출력하기 / MySQL (GROUP BY, 서브쿼리) (0) | 2023.10.26 |
SQL 고득점 Kit / SELECT / 오프라인-온라인 판매 데이터 통합하기 / MySQL (0) | 2023.10.20 |
SQL 고득점 kit / SELECT / 서울에 위치한 식당 목록 출력하기(GROUP BY) (1) | 2023.10.10 |
SQL 고득점 kit / SELECT / 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.10.07 |