본문 바로가기

study/알고리즘

[알고리즘 / Oracle] 프로그래머스 - 보호소에서 중성화한 동물, 우유와 요거트가 담긴 장바구니

프로그래머스 level4 보호소에서 중성화한 동물

 

코딩테스트 연습 - 보호소에서 중성화한 동물

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 중성화 X Intact
-- 중성화 0 Spayed or Neutered

SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME
FROM (
    (SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
     FROM ANIMAL_INS
     WHERE SEX_UPON_INTAKE LIKE 'Intact%') INS
     INNER JOIN
    (SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
     FROM ANIMAL_OUTS
     WHERE SEX_UPON_OUTCOME LIKE 'Spayed%' or SEX_UPON_OUTCOME LIKE 'Neutered%') OUTS
     ON INS.ANIMAL_ID = OUTS.ANIMAL_ID )
ORDER BY INS.ANIMAL_ID

 

 

- INNER JOIN 사용

- LIKE을 여러번 사용하려면 컬럼명 LIKE를 한번 더 써주어야 한다.


프로그래머스 level4 우유와 요거트가 담긴 장바구니

 

코딩테스트 연습 - 우유와 요거트가 담긴 장바구니

CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가

programmers.co.kr

SELECT M.CART_ID
FROM(
    (SELECT DISTINCT CART_ID
    FROM CART_PRODUCTS
    WHERE NAME = 'Milk') M
    INNER JOIN
    (SELECT DISTINCT CART_ID
    FROM CART_PRODUCTS
    WHERE NAME = 'Yogurt') Y
    ON M.CART_ID = Y.CART_ID )
ORDER BY M.CART_ID

 

- INNER JOIN 사용

- 중복 제거를 위해 DISTINCT 사용