아래와 같은 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
|
25.
lol_feedbacks 테이블에서 만족도 점수(satisfaction_score)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요!
> SELECT * FROM lol_feedbacks ORDER BY satisfaction_score DESC;
26.
lol_feedbacks 테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요!
> SELECT * FROM lol_feedbacks ORDER BY feedback_date DESC LIMIT 1;
> SELECT user_name, MAX(feedback_date) FROM lol_feedbacks GROUP BY user_name;
27.
lol_feedbacks 테이블에서 만족도 점수가 5점인 피드백의 수를 계산하는 쿼리를 작성해주세요!
> SELECT satisfaction_score, COUNT(*) AS count
FROM lol_feedbacks WHERE satisfaction_score = 5;
28.
lol_feedbacks 테이블에서 가장 많은 피드백을 남긴 상위 3명의 고객을 찾는 쿼리를 작성해주세요!
> SELECT user_name, COUNT(user_name) AS count
FROM lol_feedbacks GROUP BY user_name ORDER BY count DESC LIMIT 3;
29.
lol_feedbacks 테이블에서 평균 만족도 점수가 가장 높은 날짜를 찾는 쿼리를 작성해주세요!
> SELECT feedback_date, AVG(satisfaction_score) AS avg_score FROM lol_feedbacks
GROUP BY feedback_date ORDER BY avg_score DESC LIMIT 1;
-- 26번은 문제를 잘못 이해했다. 각 유저별로 최신이기 때문에 GROUP BY로 묶어주고
그 중에서 가장 최신 피드백을 찾아야 한다.
-- 처음 작성했던 쿼리는 모든 유저의 피드백 중에서 가장 최신을 찾는 쿼리이기 때문에 수정
-- SQL의 ORDER BY 절은 오름차순(ASC)이 기본값이기 때문에 내림차순은 반드시 DESC 명시
'SQL' 카테고리의 다른 글
[SQL 기초 연습] 9. 아프면 안됩니다! 항상 건강 챙기세요! (0) | 2025.01.16 |
---|---|
[SQL 기초 연습] 8. LOL을 하다가 홧병이 나서 병원을 찾아왔습니다. (0) | 2025.01.16 |
[SQL 기초 연습] 6. 팀 프로젝트 열심히 했으니 다시 놀아볼까요?! - LOL 유저 테이블 (0) | 2025.01.15 |
[SQL 기초 연습] 5. 공부하다보니 팀 프로젝트 시간이 왔어요! (0) | 2025.01.15 |
[SQL 기초 연습] 4. 이제 놀만큼 놀았으니 다시 공부해봅시다! (0) | 2025.01.14 |