아래와 같은 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)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요!
- lol_feedbacks 테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요!
- lol_feedbacks 테이블에서 만족도 점수가 5점인 피드백의 수를 계산하는 쿼리를 작성해주세요!
- lol_feedbacks 테이블에서 가장 많은 피드백을 남긴 상위 3명의 고객을 찾는 쿼리를 작성해주세요!
- lol_feedbacks 테이블에서 평균 만족도 점수가 가장 높은 날짜를 찾는 쿼리를 작성해주세요!
A1. //만족도 점수가 같은경우 날짜는 먼저 일어난 사건부터 보이도록 feedback_date ASC를 추가
SELECT * FROM lol_feedbacks
ORDER BY satisfaction_score DESC, feedback_date ASC;
A2. //JOIN, ON절을 이용
SELECT lf.* FROM lol_feedbacks lf
INNER JOIN(
SELECT user_name, MAX(feedback_date) latest_date
FROM lol_feedbacks
GROUP BY user_name
) latest_feedback
ON lf.user_name = latest_feedback.user_name
AND lf.feedback_date = latest_feedback.latest_date;
A3.
SELECT COUNT(*)
FROM lol_feedbacks
WHERE satisfaction_score = 5;
A4.
SELECT user_name, COUNT(*) feedback_count
FROM lol_feedbacks
GROUP BY user_name
ORDER BY feedback_count DESC
LIMIT 3;
A5.
SELECT feedback_date, AVG(satisfaction_score) avg_ss
FROM lol_feedbacks
GROUP BY feedback_date
ORDER BY avg_ss DESC
LIMIT 1;
'SQL연습문제' 카테고리의 다른 글
9)아프면 안됩니다! 항상 건강 챙기세요! (0) | 2024.08.28 |
---|---|
8) LOL을 하다가 홧병이 나서 병원을 찾아왔습니다. (0) | 2024.08.28 |
6) 팀 프로젝트 열심히 했으니 다시 놀아볼까요?! (1) | 2024.08.28 |
5) 공부하다보니 팀 프로젝트 시간이 왔어요! (0) | 2024.08.27 |
4) 이제 놀만큼 놀았으니 다시 공부해봅시다! (0) | 2024.08.27 |