https://school.programmers.co.kr/learn/courses/30/lessons/62284
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가격을 나타냅니다.
NAME | TYPE |
ID | INT |
CART_ID | INT |
NAME | VARCHAR |
PRICE | INT |
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
예시
ID | CART_ID | NAME | PRICE |
1630 | 83 | Cereal | 3980 |
1631 | 83 | Multipurpose Supply | 3900 |
5491 | 286 | Yogurt | 2980 |
5504 | 286 | Milk | 1880 |
8435 | 448 | Milk | 1880 |
8437 | 448 | Yogurt | 2980 |
8438 | 448 | Tea | 11000 |
20236 | 1034 | Yogurt | 2980 |
20237 | 1034 | Butter | 4890 |
- 83번 장바구니에는 Milk와 Yogurt가 모두 없습니다.
- 286번 장바구니에는 Milk와 Yogurt가 모두 있습니다.
- 448번 장바구니에는 Milk와 Yogurt가 모두 있습니다.
- 1034번 장바구니에는 Milk는 없고 Yogurt만 있습니다.
따라서 SQL 문을 실행하면 다음과 같이 나와야 합니다.
CART_ID |
286 |
448 |
이것은 교집합인 INTERSECT를 이용하면 된다. 장바구니에 Milk가 있는 CART_ID를 조회하고
Yogurt가 있는 CART_ID를 조회하여 이 둘의 교집합을 조회하면 장바구니에 Milk와 Yogurt 모두 있는 CART_ID만 조회할 수 있다.
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Milk'
INTERSECT
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Yogurt';
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'SQL' 카테고리의 다른 글
[프로그래머스] Lv.2 카테고리 별 상품 개수 구하기 (0) | 2023.04.05 |
---|---|
[프로그래머스] Lv.2 이름에 el이 들어가는 동물 찾기 (0) | 2022.08.29 |
[프로그래머스] Lv.4 입양 시각 구하기(2) (0) | 2022.08.29 |
[프로그래머스] Lv.1 상위 n개 레코드 (0) | 2022.08.25 |
[프로그래머스] Lv.1 역순 정렬하기 (0) | 2022.08.25 |
https://school.programmers.co.kr/learn/courses/30/lessons/62284
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가격을 나타냅니다.
NAME | TYPE |
ID | INT |
CART_ID | INT |
NAME | VARCHAR |
PRICE | INT |
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
예시
ID | CART_ID | NAME | PRICE |
1630 | 83 | Cereal | 3980 |
1631 | 83 | Multipurpose Supply | 3900 |
5491 | 286 | Yogurt | 2980 |
5504 | 286 | Milk | 1880 |
8435 | 448 | Milk | 1880 |
8437 | 448 | Yogurt | 2980 |
8438 | 448 | Tea | 11000 |
20236 | 1034 | Yogurt | 2980 |
20237 | 1034 | Butter | 4890 |
- 83번 장바구니에는 Milk와 Yogurt가 모두 없습니다.
- 286번 장바구니에는 Milk와 Yogurt가 모두 있습니다.
- 448번 장바구니에는 Milk와 Yogurt가 모두 있습니다.
- 1034번 장바구니에는 Milk는 없고 Yogurt만 있습니다.
따라서 SQL 문을 실행하면 다음과 같이 나와야 합니다.
CART_ID |
286 |
448 |
이것은 교집합인 INTERSECT를 이용하면 된다. 장바구니에 Milk가 있는 CART_ID를 조회하고
Yogurt가 있는 CART_ID를 조회하여 이 둘의 교집합을 조회하면 장바구니에 Milk와 Yogurt 모두 있는 CART_ID만 조회할 수 있다.
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Milk'
INTERSECT
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Yogurt';
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'SQL' 카테고리의 다른 글
[프로그래머스] Lv.2 카테고리 별 상품 개수 구하기 (0) | 2023.04.05 |
---|---|
[프로그래머스] Lv.2 이름에 el이 들어가는 동물 찾기 (0) | 2022.08.29 |
[프로그래머스] Lv.4 입양 시각 구하기(2) (0) | 2022.08.29 |
[프로그래머스] Lv.1 상위 n개 레코드 (0) | 2022.08.25 |
[프로그래머스] Lv.1 역순 정렬하기 (0) | 2022.08.25 |