일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 코딩
- 벚꽃
- Google Analytics
- 코오롱베네트
- 6시 기상
- 얼음여왕
- 니다
- 알파줄거리
- 티스토리
- 독서
- 구글애널리틱스
- 감사인사
- ㅂㅂ
- 명상
- GA4
- 미라클 모닝
- GA
- 기사스크랩
- 데이터 분석
- 프로그래머스
- 수명예측 인공지능
- 벚꽃개화시기
- 구글애널리틱스4
- Python
- 영화 올드 줄거리
- 채용공고
- 데이터문해력
Archives
- Today
- Total
Data Analyst KIM
[MySQL] 자동차 대여 기록 별 대여 금액 구하기(프로그래머스) 본문
반응형
WITH tab AS (
SELECT car.daily_fee
, car.car_type
, his.history_id
, DATEDIFF(END_DATE, START_DATE) + 1 AS period
, CASE WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 90 THEN '90일 이상'
WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 THEN '30일 이상'
WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 7 THEN '7일 이상'
ELSE 'NONE'
END AS duration_type
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS his
INNER JOIN CAR_RENTAL_COMPANY_CAR AS car ON car.car_id = his.car_id
WHERE car.car_type = '트럭')
SELECT tab.history_id
, ROUND(tab.daily_fee * tab.period * (100 - IFNULL(plan.discount_rate,0)) / 100) AS FEE
FROM tab
LEFT JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS plan ON plan.duration_type = tab.duration_type
AND plan.car_type = tab.car_type
ORDER BY FEE DESC, tab.history_id DESC
반응형
'데이터 분석 직무 > Coding Test' 카테고리의 다른 글
[Leetcode] 608. Tree Node (0) | 2023.11.09 |
---|---|
[Leetcode] 1393. Capital Gain/Loss (0) | 2023.11.09 |
[MySQL] 오프라인/온라인 판매 데이터 통합하기(프로그래머스) (0) | 2023.11.03 |
[MySQL] 그룹별 조건에 맞는 식당 목록 출력하기(프로그래머스) (0) | 2023.11.03 |
[MySQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기(프로그래머스) (0) | 2023.11.03 |