반응형
CAST(A.DAILY_FEE*30*(1-B.DISCOUNT_RATE*0.01) AS SIGNED) AS FEE
💡 CAST 연산자
: 계산된 FEE값을 정수로 변환
AS SIGNED : 부호를 유지
AS UNSIGNED : 부호 제거
반응형
CAST(A.DAILY_FEE*30*(1-B.DISCOUNT_RATE*0.01) AS SIGNED) AS FEE
💡 CAST 연산자
: 계산된 FEE값을 정수로 변환
AS SIGNED : 부호를 유지
AS UNSIGNED : 부호 제거
https://school.programmers.co.kr/learn/courses/30/lessons/157339
💡 문제
CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요.
✅ 문제 풀이
CAR_RENTAL_COMPANY_RENTAL_HISTORY C
WHERE C.START_DATE<='2022-11-30' AND C.END_DATE>='2022-11-01'
A.CAR_ID NOT IN (
SELECT DISTINCT C.CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY C
WHERE C.START_DATE<='2022-11-30' AND C.END_DATE>='2022-11-01'
)
FROM CAR_RENTAL_COMPANY_CAR A JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN B
ON A.CAR_TYPE=B.CAR_TYPE
AND A.CAR_TYPE IN('SUV', '세단')
AND B.DURATION_TYPE = '30일 이상'
AND A.DAILY_FEE*30*(1-B.DISCOUNT_RATE*0.01)>=500000
AND A.DAILY_FEE*30*(1-B.DISCOUNT_RATE*0.01)<2000000
SELECT A.CAR_ID, A.CAR_TYPE, CAST(A.DAILY_FEE*30*(1-B.DISCOUNT_RATE*0.01)AS SIGNED) AS FEE
ORDER BY FEE DESC, CAR_TYPE ASC, CAR_ID DESC;
✏ 코드 전문
SELECT A.CAR_ID, A.CAR_TYPE, CAST(A.DAILY_FEE*30*(1-B.DISCOUNT_RATE*0.01)AS SIGNED) AS FEE
FROM CAR_RENTAL_COMPANY_CAR A JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN B
ON A.CAR_TYPE=B.CAR_TYPE
WHERE A.CAR_ID NOT IN (
SELECT DISTINCT C.CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY C
WHERE C.START_DATE<='2022-11-30' AND C.END_DATE>='2022-11-01'
)
AND A.CAR_TYPE IN('SUV', '세단')
AND B.DURATION_TYPE = '30일 이상'
AND A.DAILY_FEE*30*(1-B.DISCOUNT_RATE*0.01)>=500000
AND A.DAILY_FEE*30*(1-B.DISCOUNT_RATE*0.01)<2000000
ORDER BY FEE DESC, CAR_TYPE ASC, CAR_ID DESC;
[프로그래머스] MYSQL LV3 "카테고리 별 도서 판매량 집계하기" 풀이 / GROUP, JOIN, SUM (0) | 2024.01.15 |
---|---|
[프로그래머스] MYSQL "5월 식품들의 총매출 조회하기" 풀이 / JOIN, GROUP BY (0) | 2024.01.11 |
[프로그래머스] JAVA LV1 "체육복" 풀이법 / 그리디(greedy) (0) | 2023.11.06 |
[프로그래머스] JAVA LV3 "여행경로" 풀이 / DFS+BFS 사용 (0) | 2023.10.24 |
[프로그래머스] JAVA LV3 "단어 변환" 풀이 / DFS 사용 (0) | 2023.10.24 |