본문 바로가기

SQL

SQL 문법 연습 - 7) 랭크게임 하다가 싸워서 피드백 남겼어요…

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

 

1. lol_feedbacks 테이블에서 만족도 점수(satisfaction_score)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요!

select *

from lol_feedbacks

order by satisfaction_score desc

 

2. lol_feedbacks 테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요!

select user_name, max(feedback_date)

from lol_feedbacks

group by user_name

 

3. lol_feedbacks 테이블에서 만족도 점수가 5점인 피드백의 수를 계산하는 쿼리를 작성해주세요!

select count(*)

from lol_feedbacks

where satisfaction_score = 5

 

4. lol_feedbacks 테이블에서 가장 많은 피드백을 남긴 상위 3명의 고객을 찾는 쿼리를 작성해주세요!

select user_name,

count(satisfaction_score)

from lol_feedbacks

group by user_name

order by 2 desc limit 3

 

5. lol_feedbacks 테이블에서 평균 만족도 점수가 가장 높은 날짜를 찾는 쿼리를 작성해주세요!

select feedback_date

from (

select feedback_date, avg(satisfaction_score)

from lol_feedbacks

group by feedback_date

order by 2 desc limit 1

) a

 

  • 배운 것
    • limit 는 order by 절에서 특정한 갯수만큼 가져오고 싶을 때 사용함
    • 서브쿼리는 반드시 별칭을 써줘야 함. 안써주면 오류남