👇 평균 일일 대여 요금 구하기(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 유발 요인 중 하나로서 인덱스 활용 여부를 체크가 필요합니다.
'🗄️ DB_이야기 > # ⚡SQL' 카테고리의 다른 글
| 🚀[SQL 알고리즘 문제 풀이] Programmers : 과일로 만든 아이스크림 고르기(SELECT) (0) | 2026.04.13 |
|---|---|
| 🚀[SQL 알고리즘 문제 풀이] Programmers : 12세 이하인 여자 환자 목록 출력하기(SELECT) (1) | 2026.04.13 |
| 🚀[SQL 알고리즘 문제 풀이] Programmers : 인기있는 아이스크림(SELECT) (0) | 2026.04.10 |
| 🚀[SQL 알고리즘 문제 풀이] Programmers : 조건에 맞는 도서 리스트 출력하기(SELECT) (0) | 2026.04.10 |
| [SQL] SQL 기본 개념 (0) | 2026.04.03 |