문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
NAME/ TYPE/ NULLABLE
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 | VARCHAR(N) | FALSE |
동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요.
-- 1. 동물의 이름이 'Lucy, Ella, Pickle, Rogan, Sabrina, Mitty' 의 이름을 가진 동물의 아이디, 이름, 성별 및 중성화 여부 조회하기
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID ASC
;
-- 2.이름에 EL 들어가는 개 찾기
SELECT ANIMAL_ID , NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME ASC
;
-- 3. 중성화된 동물의 여부를 O/X로 표시하기
SELECT ANIMAL_ID, NAME, IF(SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%' , 'O', 'X') AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC
;
-- 4. 보호소에 있다가 입양간 동물중에서 보호기간이 길었던 동물 2개만 조회하기
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY DATEDIFF(B.DATETIME, A.DATETIME) DESC
LIMIT 2
;
--5. 동물들의 아이디와 이름 날짜를 형식에 맞게 수정하여 조회하기
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC
;
--6. 보호소에서 나가서 중성화 수술을 한 동물들을 조회하기
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID = B.ANIMAL_ID
AND A.sex_upon_intake LIKE '%Intact%'
AND B.sex_upon_outcome != 'Intact Female'
AND B.sex_upon_outcome != 'Intact Male'
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A
RIGHT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.sex_upon_intake LIKE '%Intact%'
AND B.sex_upon_outcome != 'Intact Female'
AND B.sex_upon_outcome != 'Intact Male'
https://programmers.co.kr/learn/courses/
'DB' 카테고리의 다른 글
오라클 DB 공부(TABLE) (0) | 2023.06.02 |
---|---|
오라클 Database Link (0) | 2023.04.07 |
SQL JOIN문 공부하기 (0) | 2022.05.15 |
프로그래머스 SQL 테스트 2 (0) | 2022.05.11 |
프로그래머스 SQL 테스트 1 (0) | 2022.05.10 |
댓글