평균 일일 대여 요금 구하기

다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다.

자동차 종류는 '세단', 'SUV', '승합차', '트럭', '리무진' 이 있습니다. 자동차 옵션 리스트는 콤마(',')로 구분된 키워드 리스트(예: '열선시트', '스마트키', '주차감지센서')로 되어있으며, 키워드 종류는 '주차감지센서', '스마트키', '네비게이션', '통풍시트', '열선시트', '후방카메라', '가죽시트' 가 있습니다.

CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.

평균 일일 대여 요금 구하기Lv.1

151136

https://school.programmers.co.kr/learn/courses/30/lessons/151136

해설

CAR_RENTAL_COMPANY_CAR라는 테이블에서 'SUV' 유형의 차량에 대한 평균 일일 요금을 계산합니다.

  • Name
    ROUND 함수
    Type
    Description

    ROUND(SUM(...) / COUNT(...), 0): 이 부분은 계산된 평균 일일 요금을 소수점 첫 번째 자리에서 반올림합니다. 여기서 0은 소수점 이하 자릿수를 나타내며, 이 경우 결과는 소수점 없이 정수로 표시됩니다.

  • Name
    SUM(CASE WHEN CAR_TYPE = 'SUV' THEN DAILY_FEE ELSE 0 END)
    Type
    Description

    SUV 유형의 차량에 대한 일일 요금(DAILY_FEE)의 합계를 계산합니다. CASE 문을 사용하여 CAR_TYPE이 'SUV'인 경우에만 DAILY_FEE를 합산하고, 그렇지 않은 경우에는 0을 합산합니다.

  • Name
    COUNT(CASE WHEN CAR_TYPE = 'SUV' THEN 0 ELSE NULL END)
    Type
    Description

    SUV 유형의 차량 수를 계산합니다. 여기서 CASE 문은 CAR_TYPE이 'SUV'일 때 0을 반환하고, 그렇지 않을 경우 NULL을 반환합니다.

결론적으로, 이 쿼리는 CAR_RENTAL_COMPANY_CAR 테이블에서 'SUV' 유형의 차량에 대한 평균 일일 요금을 계산하여 AVERAGE_FEE라는 이름으로 반환합니다.

평균 일일 대여 요금 구하기

SELECT
    ROUND(SUM(CASE WHEN CAR_TYPE = 'SUV' THEN DAILY_FEE ELSE 0 END) / COUNT(CASE WHEN CAR_TYPE = 'SUV' THEN 0 ELSE NULL END), 0)
FROM
    CAR_RENTAL_COMPANY_CAR;