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

September 07, 2019

logo

프로그래머스에서 주최하는 SQL 문제 풀이

💎 목차

📕 문제 설명

  • ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.
  • ANIMAL_INS 테이블 구조는 다음과 같으며,
  • ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE
  • 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

table 1

  • ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다.
  • ANIMAL_OUTS 테이블 구조는 다음과 같으며,
  • ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME
  • 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.
  • ANIMAL_OUTS 테이블의 ANIMAL_IDANIMAL_INSANIMAL_ID의 외래 키입니다.

table 2

  • 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다.
  • 보호소에 들어올 당시에는 중성화 되지 않았지만,
  • 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 조으 이름을 조회하는 SQL문을 작성해주세요.
  • 이때 결과는 아이디 순으로 조회해야합니다.

⬆ 목차


📙 입출력 예

  • 예를 들어, ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블이 다음과 같다면

ANIMAL_INS

4 1 example

ANIMAL_OUTS

4 2 example

  • Cookie는 보호소에 들어올 당시에 이미 중성화되어있었습니다.
  • Maxwell 2는 보호소에 들어온 후 중성화되었습니다.
  • Kaila는 보호소에 들어올 당시에 이미 중성화되어있었습니다.
  • Chewy는 보호소에 들어온 후 중성화되었습니다.

SQL문을 실행하면 다음과 같이 나와야 합니다.


4 3 example


⬆ 목차


📘 문제 풀이

  1. 중성화를 거치지 않은 동물은 성별 및 중성화 여부에 Intact, 중성화를 거친 동물은 Spayed 또는 Neutered라고 표시되어있습니다.
SELECT 'OUTS.ANIMAL_ID', 'OUTS.ANIMAL_TYPE', 'OUTS.NAME'
FROM 'ANIMAL_INS' AS 'INS'
LEFT JOIN 'ANIMAL_OUTS' AS 'OUTS' ON 'INS.ANIMAL_ID' = 'OUTS.ANIMAL_ID'
WHERE 'INS.SEX_UPON_INTAKE' != 'OUTS.SEX_UPON_OUTCOME'
AND 'OUTS.SEX_UPON_OUTCOME' NOT LIKE '%Intact'
ORDER BY 'OUTS.ANIMAL_ID' ASC

⬆ 목차



출처

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

여러분의 댓글이 큰힘이 됩니다. (๑•̀ㅂ•́)و✧


Written by@[AGUMON]
아구몬 기술 블로그

GitHubFacebook