728x90
[문제점] avg, substring 등 함수를 썼더니 에러메세지에 ‘data type’ 단어가 뜨면서 실행되지 않아요
- 우리가 실습하는 Mysql 과 다르게, 다른 SQL 문법에서는 data type 이 다를 때 연산이 되지 않을 수 있다.
- 컬럼에 숫자 혹은 문자가 섞여서 저장되어 있는 경우 데이터 타입을 변경해야 한다.
--숫자로 변경
cast(if(rating='Not given', '1', rating) as decimal)
--문자로 변경
concat(restaurant_name, '-', cast(order_id as char))
아래와 같은 lol_feedbacks (LOL 피드백 테이블)이 있습니다.
id | user_name | satisfaction_score | feedback_date |
1 | 르탄이 | 5 | 2023-03-01 |
2 | 배캠이 | 4 | 2023-03-02 |
3 | 구구이 | 3 | 2023-03-01 |
4 | 이션이 | 5 | 2023-03-03 |
5 | 구구이 | 4 | 2023-03-04 |
lol_feedbacks 테이블에서 만족도 점수(satisfaction_score)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요!
SELECT *
FROM lol_feedbacks
ORDER BY satisfaction_score DESC;
lol_feedbacks 테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요!
SELECT user_name,
MAX(feedback_date) AS "최신 피드백"
FROM lol_feedbacks
GROUP BY user_name
lol_feedbacks 테이블에서 만족도 점수가 5점인 피드백의 수를 계산하는 쿼리를 작성해주세요!
SELECT
COUNT(*) AS "5점 피드백"
FROM lol_feedbacks
WHERE satisfaction_score = 5
lol_feedbacks 테이블에서 가장 많은 피드백을 남긴 상위 3명의 고객을 찾는 쿼리를 작성해주세요!
SELECT user_name,
COUNT(*) AS "피드백 수"
FROM lol_feedbacks
GROUP BY user_name
ORDER BY 2 DESC
LIMIT 3; --상위 3명만 추출
lol_feedbacks 테이블에서 평균 만족도 점수가 가장 높은 날짜를 찾는 쿼리를 작성해주세요!
SELECT feedback_date, AVG(satisfaction_score) AS "평균 만족도"
FROM lol_feedbacks
GROUP BY feedback_date
ORDER BY "평균 만족도" DESC
LIMIT 1;
728x90
'내일배움캠프 > TIL' 카테고리의 다른 글
[TIL] 241128_코드카타,RAND함수 (5) | 2024.11.28 |
---|---|
[TIL]241127_코드카타, SQL 연습문제4 (0) | 2024.11.27 |
[TIL]SQL코드카타, SQL과제Lv.2,3 (0) | 2024.11.26 |
[TIL]241125_SQL자격증준비 (1) | 2024.11.25 |
[TIL]SQL과제_Lv1. 데이터 속 김서방 찾기 (0) | 2024.11.22 |