DATA 사전캠프

11일차 SQL 스터디: 팀 프로젝트 열심히 했으니 다시 놀아볼까요?!

sawo11 2024. 11. 18. 15:59

아래와 같은 lol_users(LOL 유저 테이블)이 있습니다.

id name region rating join_date
1 르탄이 한국 1300 2019-06-15
2 배캠이 미국 1500 2020-09-01
3 구구이 한국 1400 2021-01-07
4 이션이 미국 1350 2019-11-15

 

21. lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위)

SELECT id,
       name, 
       region, 
       rating, 
       join_date,
       RANK() OVER (ORDER BY rating DESC) rating_rank
FROM lol_useres;

 

22. lol_users 테이블에서 가장 늦게 게임을 시작한(join_date) 유저의 이름을 선택하는 쿼리를 작성해주세요

SELECT name
FROM lol_users
WHERE join_date = (SELECT MAX(join_date) FROM lol_users);

 

23. lol_users 테이블에서 지역별로 레이팅이 높은 순으로 유저들을 정렬해서 나열하는 쿼리를 작성해주세요!

SELECT *
FROM lol_users
ORDER BY region, rating DESC;

 

24. lol_users 테이블에서 지역별로 평균 레이팅을 계산하는 쿼리를 작성해주세요!

SELECT region, 
	   AVG(rating) avg_rating
FROM lol_users
ORDER BY region;