새로운 블로그로 이전 작업을 진행하고 있어 포스트가 새로 작성되고 있지 않습니다.

빠른 시일 내에 새로운 블로그로 인사드리겠습니다.

새로운 블로그 : https://unho.vercel.app/

본문 바로가기
알고리즘 문제풀이/SQL

[프로그래머스] 우유와 요거트가 담긴 장바구니

by 언호 2021. 12. 25.

문제


풀이 과정

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

 

코딩테스트 연습 - 우유와 요거트가 담긴 장바구니

CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가

programmers.co.kr

 

 

※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다

댓글