[SQL] 프로그래머스 String, Date 문제
문제 출처. [프로그래머스] String, Date 문제
1. 루시와 엘라 찾기
문제
- 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회
풀이
- ("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");
2. 이름에 el이 들어가는 동물 찾기
문제
- 이름에 "EL"이 들어가는 개의 아이디와 이름 조회
- 이름 순으로 정렬
- 이름의 대소문자는 구분하지 않는다.
풀이
- MySQL은 기본적으로 대소문자를 구분하지 않는다.
- 따라서 "el", "El", "EL", "eL" 모두 같은 결과를 반환한다.
- el이 포함하는 경우는 "%el%"이다.
- %el%: el을 포함하는 모든 문자열
- _el__: el이 두번째에 들어가있는 4글자 문자열
- 주의할 것은 할머니의 "개"이므로 Dog도 체크해야한다.
=
는LIKE
로 대체가능
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE ANIMAL_TYPE = "Dog" AND NAME LIKE "%eL%"
ORDER BY NAME;
3. 중성화 여부 파악하기
문제
- 중성화하면 O, 아니면 X로 출력
풀이
- 중성화 여부는
IF()
로 체크할 수 있다. - IF(조건식, 참일때값, 거짓일때값)
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE "Intact%", "X", "O") AS "중성화"
FROM ANIMAL_INS ORDER BY ANIMAL_ID;
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
ORDER BY ANIMAL_ID
SELECT ANIMAL_ID,
NAME,
IF(SEX_UPON_INTAKE REGEXP 'Neutered|Spayed', 'O' , 'X') AS 중성화
FROM ANIMAL_INS
4. 오랜 기간 보호한 동물 (2)
문제
- 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회
- 보호 기간이 긴 순으로 조회
풀이
- 두 테이블의 DATETIME을 비교하기 위해 ANIMAL_INS와 ANIMAL_OUTS를
INNER JOIN
한다. - 입양일에서 보호 시작일을 뺀 기간 순으로 정렬 후
LIMIT 2
로 두 마리 출력 - 날짜를 빼는 것은
TIMESTAMPDIFF
또는DATETIME
사용가능 - 날짜간의 연산 자세히 알아보기
SELECT `IN`.ANIMAL_ID, `IN`.NAME FROM ANIMAL_INS AS `IN`
INNER JOIN ANIMAL_OUTS AS `OUT`
ON `IN`.ANIMAL_ID = `OUT`.ANIMAL_ID
ORDER BY TIMESTAMPDIFF(MINUTE, `IN`.DATETIME, `OUT`.DATETIME) DESC LIMIT 2;
5. DATETIME에서 DATE로 형변환
문제
- 아이디, 이름, 들어온 날짜 조회
- 아이디 순으로 정렬
풀이
DATE_FORMAT(날짜, 형식)
함수 사용- DATE_FORMAT() 함수 자세히 알아보기
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d")
FROM ANIMAL_INS ORDER BY ANIMAL_ID;
Author And Source
이 문제에 관하여([SQL] 프로그래머스 String, Date 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ohdowon064/SQL-프로그래머스-String-Date-문제저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)