호기심 많은 분석가
[MySQL] 프로그래머스 Coding_Test / String, Date (2) 본문
Coding/Coding Test & Algorithm
[MySQL] 프로그래머스 Coding_Test / String, Date (2)
DA Hun 2021. 5. 10. 19:44포스팅 개요
SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. 그중 String, Date 파트의 문제들을 기록해두었습니다. 그 전 문제들은 2021.05.07 - [Coding Test & Algorithm] - [MySQL] 프로그래머스 Coding_Test / String, Date (1) 포스팅에서 확인할 수 있습니다.
포스팅 본문
아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다.
TABLE 설명
4. 오랜 기간 보호한 동물(2)
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
SELECT AI.ANIMAL_ID, AI.NAME
FROM ANIMAL_INS AS AI
JOIN
ANIMAL_OUTS AS AO
USING (ANIMAL_ID)
ORDER BY (AO.DATETIME - AI.DATETIME) DESC
LIMIT 2
동일한 ANIMAL_ID를 기준으로 두 테이블을 합쳤고, 보호 기간 순으로 정렬하기 위해 각 테이블의 DATETIME의 차를 구해 큰 순서대로 2개를 출력하였다.
5. DATETIME에서 DATE로 형 변환
ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회해야 합니다.
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
이번 문제에서는 DATETIME을 우리가 원하는 형태로 바꾸어주는 DATE_FORMAT 함수를 아는 것이 키포인트였다.
DATE_FORMAT(COLUMN, 형태)의 꼴을 가진 함수였고, 쉽게 날짜까지만 남길 수 있었다.
이렇게 프로그래머스의 SQL 코딩 테스트 예제들을 모두 풀어보았습니다. 덕분에 SQL의 여러 문법들을 다시 익힐 수 있었고, 덕분에 얼마 전 프로그래머스의 Summer Intern 코딩 테스트에서 SQL 문제를 해결할 수 있었습니다.
긴 글이었는데 다들 도움이 되셨길 바랍니다. 감사합니다. :)
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[이것이 취업을 위한 코딩 테스트다 with 파이썬] (한빛미디어, 나동빈) Chapter6(1). 정렬 (0) | 2021.05.21 |
---|---|
[MySQL] MySQL에서 for문 사용하기 (0) | 2021.05.20 |
[MySQL] 프로그래머스 Coding_Test / String, Date (1) (0) | 2021.05.07 |
[MySQL] 프로그래머스 Coding_Test / JOIN (2) (0) | 2021.05.07 |
[MySQL] 프로그래머스 Coding_Test / JOIN (1) (0) | 2021.05.07 |