https://school.programmers.co.kr/learn/courses/30/lessons/59045
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
ANIMAL_INS 테이블
NAME | TYPE | NULLABLE | INFO |
ANIMAL_ID | VARCHAR(N) | FALSE | 아이디 |
ANIMAL_TYPE | VARCHAR(N) | FALSE | 종류 |
DATETIME | DATETIME | FALSE | 보호 시작일 |
INTAKE_CONDITION | VARCHAR(N) | FALSE | 보호 시작 당시 상태 |
NAME | VARCHAR(N) | TRUE | 이름 |
SEX_UPON_INTAKE | VARHCAR(N) | FALSE | 성별 및 중성화 여부 |
ANIMAL_OUTS 테이블
NAME | TYPE | NULLABLE | INFO |
ANIMAL_ID | VARCHAR(N) | FALSE | 아이디 |
ANIMAL_TYPE | VARCHAR(N) | FALSE | 종류 |
DATETIME | DATETIME | FALSE | 보호 시작일 |
NAME | VARCHAR(N) | TRUE | 이름 |
SEX_UPON_INTAKE | VARHCAR(N) | FALSE | 성별 및 중성화 여부 |
[문제] 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중서화 되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL문을 작성해주세요.
▼ 해석 및 풀이
MySQL
/*
[테이블] : ANIMAL_INS, ANIMAL_OUTS
[컬럼명] : ANIMAL_ID, ANIMAL_TYPE, NAME
[조건] : INS 테이블에서는 SEX_UPON_INTAKE가 '%Intact%'로 되어있지만 OUTS 테이블에서는 '%Spayed%' 또는 '%Neutered%'로 되어있는 데이터들을 ID ASC 순으로 조회.
*/
SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
FROM ANIMAL_OUTS
WHERE (SEX_UPON_OUTCOME LIKE '%Spayed%' OR SEX_UPON_OUTCOME LIKE '%Neutered%')
AND ANIMAL_ID IN (SELECT ANIMAL_ID FROM ANIMAL_INS WHERE SEX_UPON_INTAKE LIKE '%Intact%')
ORDER BY ANIMAL_ID;
Oracle
SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
FROM ANIMAL_INS
WHERE SEX_UPON_INTAKE LIKE '%Intact%'
INTERSECT
SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
FROM ANIMAL_OUTS
WHERE SEX_UPON_OUTCOME LIKE '%Spayed%' OR SEX_UPON_OUTCOME LIKE '%Neutered%';
'갭알 ☠️ > SQL' 카테고리의 다른 글
[프로그래머스/SQL] 이름에 el이 들어가는 동물 찾기 (MySQL, Oracle) (0) | 2022.08.12 |
---|---|
[프로그래머스/SQL] 루시와 엘라 찾기 (MySQL, Oracle) (0) | 2022.08.12 |
[프로그래머스/SQL] 오랜 기간 보호한 동물(1) (MySQL, Oracle) (0) | 2022.08.11 |
[프로그래머스/SQL] 있었는데요 없었습니다 (MySQL, Oracle) (0) | 2022.08.11 |
[프로그래머스/SQL] 없어진 기록 찾기 (MySQL, Oracle) (0) | 2022.08.10 |
댓글