오늘 풀어본 문제
https://school.programmers.co.kr/learn/courses/30/lessons/151136
자동차 종류가 '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 |