문제
문제설명
다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(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
위와 같이 작성하여 정상적으로 테스트를 통과하는 것을 확인할 수 있습니다.
댓글