7) 랭크게임 하다가 싸워서 피드백 남겼어요…
아래와 같은 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;