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()는 안에 내용의 평균을 내줘요