평균 일일 대여 요금 구하기
🔹문제
CAR_RENTAL_COMPANY_CAR테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은AVERAGE_FEE로 지정해주세요.
🗝️정답
SELECT ROUND(AVG(DAILY_FEE),0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';
💡오답 노트
1. 소수점 첫 번째 자리에서 반올림인데, 첫 번째 자리까지로 처리
ROUND(AVG(DAILY_FEE),0)에서 0이 아닌 1로 지정
➡️ 조건에 따라 정답 여부가 갈리니 문제를 잘 읽자 !!!
MySQL에서 소수점 처리와 관련된 함수들은 ROUND TRUNCATE, FLOOR, CEIL과 같은 함수들이 있다.
자릿수를 기준으로 반올림하는 함수
반올림할 자릿수를 생략해도 사용 가능하다.
기본 구조
SELECT ROUND(숫자(컬럼),자릿수) FROM 테이블명;
예시
SELECT ROUND(10.349) -- 10
SELECT ROUND(10.349, 1) -- 10.3
SELECT ROUND(10.349, 2) -- 10.35
SELECT ROUND(10.349, -1) -- 10
SELECT ROUND(11.546) -- 12
SELECT ROUND(11.546, 1) -- 11.5
SELECT ROUND(11.546, 2) -- 11.54
SELECT ROUND(11.546, -1) -- 10
자릿수를 기준으로 버림하는 함수
ROUND()와 다르게 버림 자릿수를 반드시 입력해야한다!
기본 구조
SELECT TRUNCATE(숫자(컬럼),자릿수) FROM 테이블명;
예시
SELECT TRUNCATE(10.3495,0) -- 10
SELECT TRUNCATE(10.3495, 2) -- 10.34
SELECT TRUNCATE(10.3495, 1) -- 10.3
SELECT TRUNCATE(10.3495, -1) -- 10
소수점 이하를 올리는 함수 -> 무조건 정수값으로 출력
CEIL = 천장 즉, 소숫점 자리를 천장으로 다 올려서 가장 큰 정수로!
기본 구조
SELECT CEIL(숫자) FROM 테이블명;
예시
SELECT CEIL(21.35) -- 22
SELECT CEIL(21.9) -- 22
소수점 이하 버리는 함수 -> 무조건 정수값으로 출력
FLOOR = 바닥 즉, 소숫점 자리를 바닥으로 다 내려서 가장 작은 정수로!
기본 구조
SELECT FLOOR(숫자) FROM 테이블명;
예시
SELECT FLOOR(21.35) -- 21
SELECT FLLOR(21.9) -- 21