[프로그래머스] 조건에 맞는 도서 리스트 출력하기 (MySQL)
본문 바로가기
Algorithm/SQL

[프로그래머스] 조건에 맞는 도서 리스트 출력하기 (MySQL)

by liveloper jay 2024. 1. 6.

문제

문제설명

다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK) 테이블입니다

BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다.

 

BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요.

 

 

 

 입출력 예

 

 

풀이

 

 이 문제를 처음 보고 생각한 방법은 다음과 같았습니다.

1. 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 BOOK 테이블에서 찾는다.
2. '인문' 카테고리에 있는 2021년 출판된 도서라는 조건을 추가한다. -> YEAR 함수를 활용해서 년도만 출력

3. 출판일을 기준으로 오름차순 정렬한다. -> ORDER BY 로 오름차순 정렬

 이를 SQL 문으로 구현하면 아래와 같습니다.

SELECT BOOK_ID, PUBLISHED_DATE
FROM BOOK
WHERE CATEGORY ='인문' AND YEAR(PUBLISHED_DATE) = 2021
ORDER BY PUBLISHED_DATE

 

 

 테스트를 진행해보니 위와 같이 테스트 결과가 문제에서 원하는 Y-M-D 형식으로 출력되지 않고, 뒤에 시간이 같이 출력된 것을 확인할 수 있었습니다. 그래서 문제에서 원하는 날짜 형식에 맞추어 date_format을 맞추어 다시 작성했습니다.

 DATE_FORMAT(날짜 , 형식) 의 방법으로 작성할 수 있습니다. 

SELECT BOOK_ID, date_format(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK
WHERE CATEGORY ='인문' AND YEAR(PUBLISHED_DATE) = 2021
ORDER BY PUBLISHED_DATE

 

위와 같이 작성하여 정상적으로 테스트를 통과하는 것을 확인할 수 있습니다.

댓글