본문 바로가기
SQL

본 캠프 7일차 SQL TIL

by Data 학습자 2024. 6. 30.

오늘 풀어본 문제

https://school.programmers.co.kr/learn/courses/30/lessons/151136

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

 

우선 SQL에서 소수 정수 변환해주는 명령어들과 특징부터 공부를 해야겠다.

 

1. FLOOR

  • 특징: 주어진 수를 내림하여 가장 가까운 작은 정수로 만듭니다.
  • 사용 예시: SELECT FLOOR(4.7); 결과는 4입니다.
  • 주요 사용: 실수 값을 무조건 내림 처리하고 싶을 때 사용.

2. CAST

  • 특징: 지정된 데이터 타입으로 값을 변환합니다.
  • 사용 예시: SELECT CAST(4.7 AS SIGNED); 결과는 4입니다.
  • 주요 사용: 데이터의 타입을 명시적으로 변환하고자 할 때, 특히 실수를 정수로 변환하고 싶을 때 사용.

3. ROUND

  • 특징: 지정된 자리에서 반올림합니다.
  • 사용 예시: SELECT ROUND(4.7, 0); 결과는 5입니다.
  • 주요 사용: 수를 가장 가까운 정수로 반올림하거나, 지정된 소수점 자리에서 반올림하고 싶을 때 사용.

4. TRUNCATE

  • 특징: 지정된 소수점 자리에서 숫자를 잘라냅니다.
  • 사용 예시: SELECT TRUNCATE(4.7, 0); 결과는 4입니다.
  • 주요 사용: 숫자를 특정 소수점 자리에서 자르고 소수점 이하를 완전히 버리고 싶을 때 사용.

문제의 정답을 맞추기 위해선 소수를 반올림 해주는 명령어 ROUND 를 사용해야한다.

SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE REGEXP'SUV'
GROUP BY CAR_TYPE

 

소수를 정수로 바꾸는 명령어의 수가 생각보다 많다는 것을 알았으며 상황마다 다양하게 활용이 가능하다는 점을 알았으나 특히 CAST는 데이터 타입을 변환하는 명령어이다 보니 활용하는 방법은 여러가지가 있다

 

CAST 의 활용

 

1. BINARY

  • 문자열 데이터를 이진 문자열로 변환합니다.

2. CHAR

  • 다른 데이터 타입을 문자열로 변환합니다.

3. DATE

  • 유효한 날짜 형식의 문자열을 날짜 데이터 타입으로 변환합니다.

4. DATETIME

  • 유효한 날짜 및 시간 형식의 문자열을 날짜-시간 데이터 타입으로 변환합니다.

5. DECIMAL

  • 숫자 데이터를 정밀도가 고정된 소수로 변환합니다. 변환 시 정밀도와 스케일을 지정할 수 있습니다.

6. SIGNED

  • 다른 숫자 데이터 타입을 정수형(int)으로 변환합니다. 음수를 포함할 수 있습니다.

7. UNSIGNED

  • 다른 숫자 데이터 타입을 양의 정수형(unsigned int)으로 변환합니다. 음수를 포함하지 않습니다.

8. TIME

  • 유효한 시간 형식의 문자열을 시간 데이터 타입으로 변환합니다.

9. DOUBLE

  • 다른 숫자 데이터 타입을 배정밀도 부동 소수점 숫자로 변환합니다.

10. JSON

  • 유효한 JSON 형식의 문자열을 JSON 데이터 타입으로 변환합니다.

'SQL' 카테고리의 다른 글

본 캠프 9일차 SQL TIL  (0) 2024.07.02
본 캠프 8일차 SQL TIL  (0) 2024.07.01
본 캠프 6일차 SQL TIL  (0) 2024.06.29
본 캠프 5일차 SQL TIL  (0) 2024.06.28
본 캠프 4일차 SQL TIL  (0) 2024.06.27