[SQL] Programers SELECT 문제 풀이 1번 (MySQL ROUND, TRUNCATE 함수)

juyeon lee·2024년 1월 9일

SQL TEST

목록 보기
1/8

프로그래머스 SQL 고득점 Kit

🖥️SELECT 1번

평균 일일 대여 요금 구하기


🔹문제
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과 같은 함수들이 있다.

🏷️ROUND

자릿수를 기준으로 반올림하는 함수
반올림할 자릿수를 생략해도 사용 가능하다.

  • 기본 구조
    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

🏷️TRUNCATE

자릿수를 기준으로 버림하는 함수
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

소수점 이하를 올리는 함수 -> 무조건 정수값으로 출력
CEIL = 천장 즉, 소숫점 자리를 천장으로 다 올려서 가장 큰 정수로!

  • 기본 구조
    SELECT CEIL(숫자) FROM 테이블명;

  • 예시

SELECT CEIL(21.35) -- 22 
SELECT CEIL(21.9) -- 22

🏷️FLOOR

소수점 이하 버리는 함수 -> 무조건 정수값으로 출력
FLOOR = 바닥 즉, 소숫점 자리를 바닥으로 다 내려서 가장 작은 정수로!

  • 기본 구조
    SELECT FLOOR(숫자) FROM 테이블명;

  • 예시

SELECT FLOOR(21.35) -- 21 
SELECT FLLOR(21.9) -- 21

0개의 댓글