문제
풀이 과정
1) 문제 이해 및 접근
우유와 요거트를 구매한 장바구니만 필요하므로 우유나 요거트를 구매한 장바구니들만 먼저 조회하여 서브 쿼리 생성
그 중에서 장바구니 아이디를 그룹으로 묶어서 두개를 모두 구입한것을 찾는 방식으로 접근
2) 풀이 코드
사용 언어 - MySQL
SELECT CART_ID
FROM (
SELECT DISTINCT CART_ID, NAME
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
) AS cp
GROUP BY CART_ID
HAVING COUNT(CART_ID) >= 2
ORDER BY CART_ID;
결과 및 학습한 내용
1) 어려웠던 내용
그룹으로 묶고, 우유와 요거트를 하나 이상씩 구입한 장바구니만 출력하도록 하는것에 어려움을 겪음
단순 카운트 사용시 요거트만 구입하거나 우유만 구입한 경우에도 출력이 나오게 됨
위의 문제를 DISTINCT 이용하여 카운트를 사용해서 해결
2) 새롭게 학습한 내용
DISTINCT 가 중복을 제거해주어, 데이터에서 어떠한 항목을 갖고 있는지 여부만 파악하기에 유용
문제 링크
- https://programmers.co.kr/learn/courses/30/lessons/62284#qna
※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다
'알고리즘 문제풀이 > SQL' 카테고리의 다른 글
[HackerRank] Average Population of Each Continent (0) | 2021.12.27 |
---|---|
[HackerRank] African Cities (0) | 2021.12.26 |
[프로그래머스] 오랜 기간 보호한 동물(1) (0) | 2021.12.24 |
[HackerRank] Population Census (0) | 2021.12.23 |
[HackerRank] Weather Observation Station 15 (0) | 2021.12.22 |
댓글