https://school.programmers.co.kr/learn/courses/30/lessons/131536
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제]
ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요.
[나의 풀이]
처음에
select user_id, product_id
from online_sale
order by user_id, product_id desc;
이렇게 써놓고 안에를 어떻게 처리해야 할지 모르겠어서
where exist(select...)쓰다가 지우고..
💫아이디어: GROUP BY문을 이용하여 USER_ID, PRODUCT_ID 컬럼을 기준으로 집계하고 집계 결과에서 2회 이상 구매한 내역만 조회하자
select user_id, product_id
from online_sale
group by user_id, product_id
having count(*) >= 2
order by user_id, product_id desc;
-참고
[SQL] 재구매가 일어난 상품과 회원 리스트 구하기(프로그래머스/MySQL/Level 2)
안녕하세요! 데코입니다! 오늘은 프로그래머스 코딩테스트 연습에 있는 "재구매가 일어난 상품과 회원 리스트 구하기 문제를 포스팅하려고 합니다! 바로 포스팅 시작할게요! :) (출처 : https://scho
kkw-da.tistory.com
+) 위 블로그에서 자세히 설명되어있는 HAVING과 WHERE의 차이점
SQL에서 HAVING 문은 집계 결과에 조건을 넣어 조건에 만족하는 결과를 조회할 때 사용한다.
따라서 GROUP BY문 뒤에 사용을 함.
HAVING 문에서는 집계함수를 통해 조건을 추가할 수 있음.
- MAX : 컬럼의 최댓값을 산출
- MIN : 컬럼의 최소값을 산출
- SUM : 컬럼의 값을 합계를 산출
- COUNT : 컬럼의 갯수를 산출
- AVG : 컬럼의 평균값을 산출
WHERE 문에서는 데이터에서 ROW(행)에서 조건을 만족하는 데이터만을 필터링하는 구문이고,
HAVING 문은 GROUP BY문을 통해 집계한 이후 만족하는 데이터만을 필터링하는 구문임.
'프로그래머스 > My SQL' 카테고리의 다른 글
성분으로 구분한 아이스크림 총 주문량 (0) | 2024.11.07 |
---|---|
진료과별 총 예약 횟수 출력하기 + order by 한글 별칭 (0) | 2024.11.06 |
3월에 태어난 여성 회원 목록 출력하기 (0) | 2024.11.05 |
가격이 제일 비싼 식품의 정보 출력하기 (0) | 2024.11.05 |
입양 시각 구하기(1) (0) | 2024.11.04 |