[SQL] 평균 일일 대여 요금 구하기

김피자·2024년 6월 9일

SQL

목록 보기
1/2

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/151136

문제 설명

다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 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 로 지정해주세요.

풀이

풀이 전 문제에서 언급된 요구사항은 아래와 같다.

  1. 자동차 종류는 SUV
  2. 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림
  3. 결과 컬럼명은 AVERAGE_FEE

평균 대여 요금과 소수 첫 번째 자리에서 반올림을 하기위해
평균을 구하는 함수 AVG()와 결과 값을 반올림하여 출력할 수 있는 ROUND() 함수를 사용하였다.

AVG()
: AVG(숫자 타입 컬럼 명)

ROUND()
: ROUND(값, 자리 수)
0인 경우, 반올림하여 1의 자리까지 표시한다.
N인 경우, 소숫점 아래 N의 자리까지 반올림하여 표시한다.
-N인 경우, 반올림하여 10의 N승 자리까지 표시한다.

DAILY_FEE 컬럼의 평균을 구하기 위해 AVG() 함수를 사용

SELECT AVG(DAILY_FEE)

나온 평균 값을 반올림 하기위해 ROUND() 함수로 감싸는데 이 때 소수 첫 번째 자리에서 반올림 하라고 했으니 자리 수는 0으로 지정함

SELECT ROUND(AVG(DAILY_FEE), 0)

컬럼명은 AVERAGE_FEE로 출력해야하니 AS 사용

SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE

CAR_TYPE이 SUV인 차량만 해당

SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';

profile
제로부터시작하는코딩생활

0개의 댓글