한 걸음씩

[프로그래머스][MySQL] 재구매가 일어난 상품과 회원 리스트 구하기 본문

Programmers

[프로그래머스][MySQL] 재구매가 일어난 상품과 회원 리스트 구하기

winter17 2023. 2. 21. 16:46

https://school.programmers.co.kr/learn/courses/30/lessons/131536

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 정답 코드

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

 

전체 코드 해석 ▼

ONLINE_SALE 테이블에서

USER_ID, PRODUCT_ID 칼럼을 그룹화하고

USER_ID 칼럼의 행의 개수가 1 이상이면 (중복인 데이터 찾기)

USER_ID, PRODUCT_ID을 출력하는데

USER_ID칼럼을 기준으로 오름차순 정렬하고, 동일한 값이 나올 경우 PRODUCT_ID 기준으로 내림차순 정렬해 줘

 

 

 체크 포인트

 

► 중복 데이터 찾기

  • 해당 칼럼을 그룹화를 하고
  • HAVING 에서 COUNT함수를 사용해  '1 이상이면 출력'과 같이 조건을 설정하면 (위의 코드 참고)
  • 중복 데이터를 찾을 수 있다