[프로그래머스/MySQL/SELECT/LV.1] 평균 일일 대여 요금 구하기

sammy·2024년 6월 6일

SQL 문제풀이

목록 보기
1/87

문제

문제 설명

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

Column nameTypeNullable
CAR_IDINTEGERFALSE
CAR_TYPEVARCHAR(255)FALSE
DAILY_FEEINTEGERFALSE
OPTIONSVARCHAR(255)FALSE

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

문제

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

예시

예를 들어 CAR_RENTAL_COMPANY_CAR 테이블이 다음과 같다면

CAR_IDCAR_TYPEDAILY_FEEOPTIONS
1세단16000가죽시트,열선시트,후방카메라
2SUV14000스마트키,네비게이션,열선시트
3SUV22000주차감지센서,후방카메라,가죽시트

'SUV' 에 해당하는 자동차들의 평균 일일 대여 요금은 18,000 원 이므로, 다음과 같은 결과가 나와야 합니다.

AVERAGE_FEE
18000

문제접근

  1. 평균을 구하기 위해 AVG() 함수를 사용한다.
  2. 반올림을 위해 ROUND() 함수를 사용한다.
  3. AVERAGE_FEE 로 별칭을 지정하기 위해 as를 사용한다.

내 정답

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

짚고 넘어가기

-- ROUND: 지정하는 소숫점 자리로 반올림
SELECT ROUND(127.362, 2); -- 127.36
-- FLOOR: 가장 가까운 정수로 버림하여 반환
SELECT FLOOR(127.362); -- 127
-- CEIL / CEILING: 가장 가까운 정수로 올림하여 반환
SELECT CEIL(127.362); -- 128
SELECT CEILING(127.362); -- 128
-- TRUNCATE: n째 자리까지 남기고 제거
SELECT TRUNCATE(127.362, 2); --127.36
profile
누군가에게 도움을 주기 위한 개발자로 성장하고 싶습니다.

0개의 댓글