0. 문제 소개
출처 : 프로그래머스
언어 : MySQL
제목 : 평균 일일 대여 요금 구하기
레벨 : Lv1
분류 : SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/151136
1. 문제 조건 및 요구사항
문제 )
CAR_RENTAL_COMPANY_CAR 테이블에서
자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요.
이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고,
컬럼명은 AVERAGE_FEE 로 지정해주세요.
문제 조건 )
다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은
CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은
아래와 같은 구조로 되어있으며,
CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는
각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다.
자동차 종류는 '세단', 'SUV', '승합차', '트럭', '리무진' 이 있습니다.
자동차 옵션 리스트는 콤마(',')로 구분된 키워드 리스트(예: '열선시트', '스마트키', '주차감지센서')로 되어있으며,
키워드 종류는 '주차감지센서', '스마트키', '네비게이션', '통풍시트', '열선시트', '후방카메라', '가죽시트' 가 있습니다.
출력 조건 )
2. 정답 풀이
CAR_RENTAL_COMPANY_CAR 테이블에서 (from으로 명시할 테이블명)
자동차 종류가 'SUV'인(where문으로 자동차 종류에 대해 특정) 자동차들의 평균 일일 대여 요금(일일대여요금을 출력하되 평균 avg)을 출력하는 SQL문
이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림(round)하고, 컬럼명은 AVERAGE_FEE 로 지정 (select문에 as로 지정)
SELECT ROUND(AVG(DAILY_FEE),0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';
AS를 생략해도 괜찮다
AVG(DAILY_FEE) 는 WHERE 조건에 해당되는 행들에서
DAILY_FEE를 가져오되 그 값들의 평균으로 출력하기 위함이다
사실 필자는 한 번 틀렸었다
이유는... 첫 번째 자리에서 반올림인데 첫 번째 자리까지로 착각하고
SELECT ROUND(AVG(DAILY_FEE), 1) AVERAGE_FEE 이라고 작성했다 ^~^...
ROUND에는 (출력할 값, 'n까지 반올림한다'의 n) 의 형태로 작성해야하므로
0이라고 작성해야하는데 1로 작성했었음 ...
'[ Computer Science ] > Database_sql' 카테고리의 다른 글
[Database/midterm] SQL 문법 기초 (11) | 2024.10.19 |
---|---|
[Database/midterm] 데이터베이스 설계 (개념적, 논리적) (2) | 2024.10.19 |
[Database/MySQL] 실습을 위한 초기 데이터 생성 (4) | 2024.10.17 |
[프로그래머스/MySQL] Lv. 1 역순 정렬하기 (SELECT) (0) | 2024.10.17 |
[프로그래머스/MySQL] Lv. 1 아픈 동물 찾기 (SELECT) (0) | 2024.10.17 |
[프로그래머스/MySQL] Lv. 1 가장 비싼 상품 구하기 (SUM, MAX, MIN) (0) | 2024.10.17 |
[Database/MySQL] 데이터베이스와 테이블 생성 후 조회하기 ( error 1046, error 1049, err 1065 ) (3) | 2024.10.01 |