https://school.programmers.co.kr/learn/courses/30/lessons/151138
SELECT
HISTORY_ID
,CAR_ID
,DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE
,DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE
,CASE WHEN DATEDIFF(end_date, start_date)+1 >=30 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE
# ,DATEDIFF(end_date, start_date)+1 ---이렇게 적어두면 장기/단기가 잘 들어갔는지 확인하기 편함
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(start_date) = '09'
ORDER BY history_id DESC
새로 배운 함수
- DATE_FORMAT(START_DATE, '%Y-%m-%d') : 2020-01-01 형식으로 반환
- DATEDIFF(B, A) : B에서 A를 뺀 날짜 일수를 반환
ex) DATEDIFF(2020-01-16 , 2020-01-01 ) => 15
문제에 따르면 2020-01-01~2020-01-16은 16일로 계산하기 때문에 DATEDIFF 에 +1을 했다.
오답노트
- '장기 대여'를 '장기대여'로 적었다. 정답에서 요구한 형식의 띄어쓰기나 디테일한 부분을 잘 확인하자!
'데이터분석 공부하기 > 프로그래머스 SQL 고득점 키트' 카테고리의 다른 글
[SQL/프로그래머스 SQL 고득점Kit] 중성화 여부 파악하기(Level 2) (0) | 2023.01.26 |
---|---|
[SQL/프로그래머스 SQL 고득점 Kit] 이름에 el이 들어가는 동물 찾기(Leve 2) (0) | 2023.01.25 |
[SQL/프로그래머스 SQL 고득점 Kit]_루시와 엘라 찾기(Level 2) (0) | 2023.01.25 |
[SQL] DISTINCT 이해하기 (0) | 2023.01.23 |
[SQL] SQL로 피봇테이블 만들기/Pivoting Data in SQL/ (0) | 2023.01.18 |