sql

ORDER BY DESC LIMIT 1 , AVG()

148june 2025. 1. 22. 15:55

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

 

 

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

정답

SELECT name, rating, RANK() OVER (ORDER BY rating DESC) AS lol_rank FROM lol_users;

OVER()' 함수는 윈도우 함수가 적용될 범위나 순서를 지정하는 역할을 합니다.

레이팅이 높을수록 높아야하기에 내림차순

 

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

정답

SELECT name FROM lol_users ORDER BY join_date DESC LIMIT 1;

내림차순에대해서 배웠으니 응용법으로 내림차순에 첫번쨰를 가져오라는 부분입니다.

 

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

정답

SELECT * FROM lol_users ORDER BY region, rating DESC;

 

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

정답

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

AVG()는 안에 내용의 평균을 내줘요