프로그래밍/MySQL

[MySQL] 프로그래머스 SQL String, Date 답 해설

모영이 2021. 2. 17. 15:48

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

#1 루시와 엘라 찾기

IN은 하나라도 만족하면 참이다.

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE 
FROM ANIMAL_INS 
WHERE NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty')

 

#2 이름에 el이 들어가는 동물 찾기

LIKE는 문자가 포함되어있는지 확인한다.

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS 
WHERE (NAME LIKE '%EL%' OR NAME LIKE '%el%') AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME ASC

 

#3 중성화 여부 파악하기

CASE, WHEN-THEN, ELSE, END문

SELECT ANIMAL_ID, NAME,
CASE
WHEN SEX_UPON_INTAKE LIKE "%Neutered%" OR SEX_UPON_INTAKE LIKE "%Spayed%"
THEN 'O'
ELSE
    'X'
END AS '중성화'
FROM ANIMAL_INS

 

#4 오랜 기간 보호한 동물(2)

JOIN문제 

LIMIT은 offset부터 N까지 데이터를 가져온다.

SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS
LEFT OUTER JOIN ANIMAL_INS AS INS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
ORDER BY (OUTS.DATETIME - INS.DATETIME) DESC
LIMIT 0,2

 

#3 DATETIME에서 DATE로 형 변환

DATE_FORMAT으로 형변환 가능

SELECT 
    ANIMAL_ID,
    NAME,
    DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

 

정리하기