https://school.programmers.co.kr/learn/courses/30/lessons/62284
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
GROUP_CONCAT으로 쉽게 풀었던 문제.
예전에는 UNION으로 좀 더 길게 풀었는데, 장바구니 이력이 여러번 있는 경우가 있으니 DISTINCT든 다른 방식으로든 중복을 제거해 주는 것이 포인트인듯 하다.
SELECT CART_ID
FROM (
SELECT CART_ID
,GROUP_CONCAT(NAME) NAME
FROM CART_PRODUCTS
WHERE NAME = 'Milk'
OR NAME = 'Yogurt'
GROUP BY CART_ID
) A
WHERE NAME LIKE '%Milk%Yogurt'
OR NAME LIKE '%Yogurt%Milk'
ORDER BY 1
with temp as (
select distinct(cart_id)
from cart_products
where name = 'yogurt'
union all
select distinct(cart_id)
from cart_products
where name = 'milk')
select cart_id
from temp
group by 1
having count(*) >=2
'TIL 통합 > SQL' 카테고리의 다른 글
[LEETCODE] 262. Trips and Users: WHERE절 활용 (0) | 2025.04.07 |
---|---|
[LEETCODE] PRODUCT SALES ANALYSIS 3 - WHERE 응용 (0) | 2025.04.05 |
[프로그래머스] GROUP BY - 입양 시각 구하기(2) (0) | 2025.04.03 |
[프로그래머스] JOIN - 상품을 구매한 회원 비율 구하기 (0) | 2025.04.02 |
[프로그래머스] SELECT - 멸종위기의 대장균 찾기(RECURISVE) (0) | 2025.04.02 |