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 | 29 | 30 | 31 |
Tags
- 프로그래머스
- 내일배움일지
- 시각화
- 반복문
- 내배캠_학습기록
- map
- 데이터전처리
- SQLD
- 태블로
- Join
- ★
- Leetcode
- f-string
- AB테스트
- DATE_SUB
- 내일배움캠프
- 가설검정
- 아티클스터디
- python
- Til
- 이중for문
- 리스트
- 선형회귀
- 데이터시각화
- 한줄for문
- Max
- 다중공선성
- SQL
- Set
- 통계학
Archives
- Today
- Total
노력에는 지름길이 없으니까요
프로그래머스 - 우유와 요거트가 담긴 장바구니 본문
728x90
해결일 | 언어 | 레벨 | 테스트명 |
20240716 | SQL | level 4 | 우유와 요거트가 담긴 장바구니 |
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/62284
내 코드
SELECT
CART_ID
FROM CART_PRODUCTS
WHERE NAME ='Yogurt'
INTERSECT
SELECT
CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Milk'
교집합을 구하면 될 것 같아서 조사를 해보니
집합 관련 명령문이 있기에 정리해두었다.
SQL 일반 집합 연산
합집합 : UNION
SELECT * FROM (테이블1)
UNION
SELECT * FROM (테이블2);
교집합 : INTERSECT
-- 선택한 컬럼에 대해서만 교집합 연산 진행
SELECT COL1, COL2 FROM A
INTERSECT
SELECT COL1, COL2 FROM B
차집합 : EXCEPT
-- 선택한 컬럼에 대해서만 차집합 연산 진행
-- A와 B의 COL1, COL2 값이 모두 같은 경우에만 차집합 진행
SELECT COL1, COL2 FROM A
EXCEPT -- Oracle에서는 MINUS
SELECT COL1, COL2 FROM B
베스트 코드
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
GROUP BY CART_ID
HAVING COUNT(DISTINCT NAME) = 2
ORDER BY CART_ID;
공유된 정답 중 현시점에서 다들 가장 직관적이라고 하는 코드다.
이걸 보고 감탄해서 다시 써보고 싶었는데 잘되지 않아서 교집합을 차용했던 거라... ㅋㅋㅋ
다시 읽어둬야지
728x90
반응형
'SQL > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 조건에 맞는 개발자 찾기 (0) | 2024.08.02 |
---|---|
프로그래머스 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2024.08.01 |
프로그래머스 - 그룹별 조건에 맞는 식당 목록 출력하기 (1) | 2024.07.15 |
프로그래머스 - 배열 만들기 1 (0) | 2024.07.12 |
프로그래머스 - 가격대 별 상품 개수 구하기 (0) | 2024.07.10 |