250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래머스
- SQL
- 파이썬
- 그로스해킹
- 윈도우함수
- 데이터리안
- join
- 데이터리안실전반
- 서브쿼리
- 위키독스
- 데벨챌
- 약수구하기
- sql문풀
- SQL고득점KIT
- 데이터리안넥스트레벨챌린지
- with절
- mysql
- 프로그래머스문풀
- 티스토리챌린지
- SQL테스트
- 활성사용자수
- levle1
- leetcode문풀
- 파이썬문풀
- 오블완
- 문풀
- leetcode
- 셀프조인
- sql50
- 코테준비
Archives
- Today
- Total
꿈은 데이터분석가, 취미는 계획
[MY SQL] 2개를 모두 담은 ID찾기(우유와 요거트가 담긴 장바구니) 본문
728x90
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 우유와 요거트가 담긴 장바구
링크: https://school.programmers.co.kr/learn/courses/30/lessons/62284
문제(일부): 우유와 요거트를 동시에 구입한 장바구니의 아이디 조회
1. UNION과 GROUP BY 사용하기
1) NAME = 'Milk'인 것과 NAME = 'Yogurt'인 것을 각각 구하기
2) UNION으로 합친 후 group by해서 HAVING에서 2이상인 ID를 조회(=2개 모두 구매한 ID)
SELECT CART_ID
FROM (SELECT DISTINCT CART_ID, NAME
FROM CART_PRODUCTS
WHERE NAME = 'Milk'
UNION
SELECT DISTINCT CART_ID, NAME
FROM CART_PRODUCTS
WHERE NAME = 'Yogurt') AS Filter
GROUP BY CART_ID
HAVING COUNT(CART_ID) >= 2
ORDER BY CART_ID
2. 서브쿼리 사용하기
1) Yougurt를 구매한 cart_id를 조회
2) 서브쿼리에서 Milk를 구매한 cart_id를 구하기
3) WHERE절에서 milk를 구매한 cart_id만 조회
SELECT DISTINCT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Yogurt'
AND CART_ID IN (
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Milk')
ORDER BY CART_ID
728x90
'SQL > SQL문풀' 카테고리의 다른 글
[MY SQL 업그레이드 할 수 없는 아이템 구하기(SELF JOIN) (0) | 2024.07.28 |
---|---|
[MY SQL] 대장균의 자식의 수 구하기(SELF JOIN, 서브쿼리, WITH절 사용방법) (0) | 2024.07.28 |
[MY SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회 (0) | 2024.07.26 |
[MY SQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2024.07.26 |
[MY SQL] DATEDIFF와 TIMESTAMPDIFF 차이(날짜차이 구하기) (0) | 2024.07.21 |