728x90
난이도 : Level 4
풀릴듯 말듯 했다...
쉬운듯 아닌듯..
subquery를 활용해서 풀었는데.. 뭔가 답만 나오면 다였던 수준.
더 clean하게 정리할 수 없을까?
select cart_id
from (
-- 여기에서 cart_id와 name으로 묶어서 count를 센다.
select cart_id, name, count(*) as canmcount
from cart_products
where name in ('Milk', 'Yogurt')
group by cart_id, name
order by cart_id
)
-- 여기에서 1차적으로 한 품목을 두개이상 담는 사람이 걸러진다.
where canmcount < 2
-- 그 후 cart_id로 묶어주면 한 품목만 담았던 사람은 count시 1이 된다.
group by cart_id
-- 그럼 1 이상인 사람만 출력해주면 된다.
having count(*) > 1
order by cart_id;
728x90
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[SQL] 이름에 el이 들어가는 동물 찾기(Oracle) (0) | 2022.05.02 |
---|---|
[70129] 이진변환 반복하기 (0) | 2022.04.18 |
[SQL] 헤비 유저가 소유한 장소(Oracle) (0) | 2022.04.15 |
[SQL] 없어진 기록 찾기(Oracle) (0) | 2022.04.15 |