문제
https://school.programmers.co.kr/learn/courses/30/lessons/131536
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이과정
HAVING을 사용하는 문제입니다.
1. ONLINE_SALE 테이블에서
2. 동일한 회원이 동일한 상품을 재구매한 데이터
3. 재구매한 회원 ID와 재구매한 상품 ID를 출력
3-1. 회원 ID, 물건ID를 그룹으로 묶어서, 물건 ID 개수가 두개 이상일 경우인 데이터만 보기위해서 COUNT()를 사용하기위해 조건절 HAVING을 사용
GROUP BY 가 사용되는 경우 WHERE 절에 집계함수를 사용할 수 없습니다!
=> 이런 경우 조건을 위해서 HAVING 이 사용
4. 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬
풀이
SELECT USER_ID, PRODUCT_ID -- 3
FROM ONLINE_SALE -- 1
GROUP BY USER_ID, PRODUCT_ID -- 2
HAVING COUNT(PRODUCT_ID) >= 2 -- 2
ORDER BY 1, 2 DESC -- 4
'알고리즘' 카테고리의 다른 글
[SQL]프로그래머스 59405: 상위 n개 레코드 (0) | 2023.12.29 |
---|---|
[SQL]프로그래머스 131537: 오프라인/온라인 판매 데이터 통합하기 (1) | 2023.12.27 |
[SQL]프로그래머스 131112: 강원도에 위치한 생산공장 목록 출력하기 (0) | 2023.12.22 |
[SQL]프로그래머스 131118: 서울에 위치한 식당 목록 출력하기 (0) | 2023.12.21 |
[SQL]프로그래머스 133025: 과일로 만든 아이스크림 고르기 (0) | 2023.12.21 |