CODING TEST/MySQL

Lv1 - 평균 일일 대여 요금 구하기

iamyuunzo 2025. 7. 16. 21:53

📌 문제 정보

- 문제 이름 : 프로그래머스 - (SELECT) 평균 일일 대여 요금 구하기

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

 

 

 

📌 문제 요약

- CAR_RENTAL_COMPANY_CAR 테이블 : CAR_ID(자동차 ID), CAR_TYPE(자동차 종류), DAILY_FEE(일일 대여 요금(원)), OPTIONS(자동차 옵션 리스트)

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

 

예시)

CAR_ID CAR_TYPE DAILY_FEE OPTIONS
1  세단  16000  가죽시트,열선시트,후방카메라
2 SUV 14000 스마트키,네비게이션,열선시트
3 SUV 22000 주차감지센서,후방카메라,가죽시트

 

출력)

AVERAGE_FEE
18000

 

 

 

📌 내 풀이 및 코드

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

 

 

 

📌 새로 배운 문법

<-- 이번 문제에서 새로 배운 Java 문법 정리 -->

** AVG(), ROUND() 함수 **

- AVG() : 평균 함수 - 숫자 컬럼의 평균값(산술 평균)을 구하는 집계 함수로 NULL값은 무시함.

- ROUND() : 반올림하는 함수 (deciaml_plaes를 생략하면 정수 반올림.)

# AVG(column_name)

-- DAILY_FEE 값이 1000, 2000, 3000이라면
SELECT AVG(DAILY_FEE); -- 결과: 2000


# ROUND(number [, decimal_places])

-- 예시
SELECT ROUND(123.456);       -- 결과: 123
SELECT ROUND(123.456, 1);    -- 결과: 123.5
SELECT ROUND(123.456, 2);    -- 결과: 123.46


# 두 함수 합치기 예시 : ROUND(AVG(...))
SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEE
-- 1. AVG(DAILY_FEE)로 평균 구하기
-- 2. ROUND(...)로 소수점 반올림한 뒤 
-- 3. 그 값을 AVERAGE_FEE라는 이름으로 출력