Coding Test Practice/SQL
[프로그래머스 코딩테스트 연습 SQL 고득점 Kit] String, Date
y2r1m
2022. 9. 14. 00:58
String, Date
문제 링크 : https://school.programmers.co.kr/learn/courses/30/parts/17047
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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
2. 이름에 el이 들어가는 동물 찾기
# 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을, 이름 순으로 조회 (단, 이름의 대소문자는 구분 X)
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog'
AND NAME LIKE '%el%'
ORDER BY NAME
3. 중성화 여부 파악하기
# 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회
# 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있는데, 중성화가 되어있다면 '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
4. 오랜 기간 보호한 동물(2)
# 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을, 보호 기간이 긴 순으로 조회
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_INS AS INS
INNER JOIN ANIMAL_OUTS AS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
ORDER BY (OUTS.DATETIME - INS.DATETIME) DESC
LIMIT 2
5. DATETIME에서 DATE로 형 변환
# ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를, 아이디 순으로 조회
# 이때 들어온 날짜는 시각(시-분-초)을 제외한 날짜(년-월-일)만 표시
SELECT ANIMAL_ID, NAME,
DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜
FROM ANIMAL_INS