반응형
프로그래머스에 여러 문법들을 활용해서 SQL 쿼리문을 짜볼 수 있도록 다양한 문제들을 레벨 별로 제공하고 있습니다.
Lv2인'조건에 맞는 도서와 저자 리스트 출력하기' 문제를 풀어보았습니다.
프로그래머스 문제 링크 참고 바라며, 문제는 간략히 설명합니다.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
사용할 테이블 정보
어느 한 서점에서 판매중인 도서 정보를 담고 있는 book 테이블과 저자 정보를 담고 있는 author 테이블이 있으며,
두 테이블 모두 author_id 값을 갖고 있습니다.
고민 과정
book
테이블에 있는 정보와author
테이블에 있는 정보를 합쳐서 보여줘야 한다.- 그냥 합치면 될 것으로 보이니
INNER JOIN
해야지
- 그냥 합치면 될 것으로 보이니
- 카테고리 = '경제'로 필터링해야 한다.
- WHERE 절 추가해야지
book.published_date
로 정렬해야 한다.- 마지막에 ORDER BY 추가해야지
- 그외 고려해야할 것은 없어보인다.
- SQL 짜러 고!
+ (고민 과정에서는 놓쳤지만) published_date
를 '2021-04-01'처럼 노출되도록 포맷팅 적용한다.
SQL 쿼리 작성
SELECT book.book_id, author.author_name, DATE_FORMAT(book.published_date, '%Y-%m-%d') AS published_date
FROM book JOIN author
ON book.author_id = author.author_id
WHERE book.category = '경제'
ORDER BY book.published_date;
추가 필요한 지식
INNER JOIN, ORDER BY, DATE_FORMAT()
DATE_FORMAT()
문제 유형인 'JOIN' 개념 외에 Date 포맷팅 적용 방법도 알아야했습니다.
이미 Date 타입인데, 데이터의 포맷을 yyyy-mm-dd HH:MM:SS -> yyyy-mm-dd 형태로 바꾸어주어야 하려면, 아래 문법을 사용합니다.
데이터 포맷팅 규칙은 다양하게 있습니다.
DATE_FORMAT(date, '%Y-m-%d')
모든 포맷을 외우기 힘들다면 아래 예시 정도면 알아두어도 괜찮을 것 같아요
포맷 표현식 | 예시 |
---|---|
'%Y-%m-%d %H:%i:%s' | 1999-01-01 00:00:00 |
'%Y-%m-%d %T' | 1999-01-01 00:00:00 |
'%Y-%m-%d %r' | 1999-01-01 12:00:00 AM |
**시각 : 정오
반응형
'Algorithm & Data Structure > 문제 풀이' 카테고리의 다른 글
[SQL, 프로그래머스] 주문량이 많은 아이스크림들 조회하기 (0) | 2024.06.16 |
---|---|
[SQL, 프로그래머스] 상품 별 오프라인 매출 구하기 (1) | 2024.06.09 |
[HackerRank] SQL 문제 (0) | 2022.06.26 |
[JAVA] baekjoon 2447 별 찍기-10 (0) | 2022.06.15 |
[JAVA] baekjoon 1891 사분면 (0) | 2022.06.13 |