조앤의 기술블로그

[프로그래머스 / SQL] String, Date (mysql) 본문

Programming/프로그래머스

[프로그래머스 / SQL] String, Date (mysql)

쬬앤 2020. 4. 1. 18:05

1. 루시와 엘라 찾기

 

동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별을 조회하는 SQL문 작성

 

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'이 들어간다고 한다. 

동물 보호소에 들어온 동물 이름 중 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문 작성. 이때 결과는 이름 순으로 조회. 단, 이름의 대소문자는 구분하지 않는다. 

 

SELCT animal_id, name

FROM animal_ins

WHERE name LIKE '%el%'

AND animal_type = 'Dog'

ORDER BY name

 

3. 중성화 여부 파악하기

보호소의 동물이 중성화되었는지 아닌지 파악하려 한다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있다. 동물의 아이디와 이름, 중성화 여부룰 아이디 순으로 조회하는 SQL문 작성. 이 때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시.

 

SELCT 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)

 

입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문 작성. 

이때 결과는 보호 기간이 긴 순으로 조회해야 함.

 

SELECT a.animal_id, a.name

FROM animal_ins a, animal_outs b

WHERE a.animal_id = b.animal_id

ORDER BY DATEDIFF(a.datetime, b.datetime)

LIMIT 2

 

5. DATETIME에서 DATE로 형 변환

 

ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 SQL문 작성. 

이때 결과를 아이디 순으로 조회.

(시각(시-분-초)를 제외한 날짜(년-월-일)만 출력할 것)

 

SELECT animal_id, name, date_format(datetime, '%Y-%m-%d') as 날짜

FROM animal_ins

 

 

*

%Y - 2020

%y - 20