노력에는 지름길이 없으니까요

프로그래머스 - 과일로 만든 아이스크림 고르기 본문

SQL/프로그래머스

프로그래머스 - 과일로 만든 아이스크림 고르기

데건 2024. 6. 27. 10:09
728x90

 

해결일 언어 레벨 테스트명
20240627 SQL level 1  과일로 만든 아이스크림 고르기

 

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/133025

 

 

 


 

내 코드

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

 

순간적으로 GROUP BY가 너무 헷갈려서 튜터님께 질문함

USER_ID, PRODUCT_ID로 묶었을 때랑 USER_ID로만 묶었을 때의 차이...

USER_ID만 있을 때 해당 HAVING 절은 유저별 개수가 1개 이상이면 무조건 출력

USER_ID, PRODUCT_ID로 묶으면 같은 상품에 대해 1개 이상이면 출력

 

개선점: 들여쓰기가 이상하다, 현업에서는 쓰지 않는다는 지적을 받았다 ㅋㅋㅋㅋㅋㅋ 나름 질문하기에 있는 방법을 차용하고 있었는데 현업에서 쓰지 않는 방식이라니 당장 버려야겠다.......

 

그리고 윈도우 함수 공부를 열심히 해달라는 조언도 주셨기 때문에... 오늘은 윈도우 함수쪽 복습을 다시 하는 걸로.

 

베스트 코드

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

#집계
#PARTITION BY -> 행마다 집계가 가능하게 됨
#윈도우 함수 예제 찾아보기!!
#윈도우 함수 -> 행마다 << 중요!
#GROUP BY는 행마다 집계 x

 

 

 

728x90
반응형