본문 바로가기
🗄️ DB_이야기/# ⚡SQL

🚀[SQL 알고리즘 문제 풀이] Programmers : 평균 일일 대여 요금 구하기(SELECT)

by gwon_s 2026. 4. 10.

👇 평균 일일 대여 요금 구하기(SELECT)

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

🔓 문제 설명

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

 

문제 데이터 (CAR_RENTAL_COMPANY_CAR)

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

⚡SQL Query

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

🔎 풀이 설명

1. 조건 필터링: WHERE CAR_TYPE= 'SUV'를 통해 자동차 종류가 SUV인 데이터만 추출합니다.

2. 평균 계산: AVG(DAILY_FEE)를 사용하여 추출된 SUV 요금의 평균을 계산합니다.

3. 반올림 처리: 문제에서 "소수 첫 번째 자리에서 반올림"하라고 했으므로, ROUND(값, 0 또는 NULL)을 사용하여 정수 형태로 출력합니다.

4. 별칭 지정: AS AVERAGE_FEE를 사용하여 결과 컬럼명을 지정합니다.(AS 생략 가능)


💡인사이트

AVG() 함수

  • NULL은 대상에서 제외되고, 만약 NULL을 0으로 간주하여 평균을 내야한다면 AVG(NVL(컬럼, 0)) 처럼 처리가 필요합니다.
  • 대용량 데이터에서 AVG()를 사용할 때 Full Table Scan 유발 요인 중 하나로서 인덱스 활용 여부를 체크가 필요합니다.