[6단계] 팀 프로젝트 열심히 했으니 다시 놀아볼까요?!
21. lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위)
** 순위에 대한 함수 RANK 는 윈도우 내장 함수이다. PARTITION은 그룹화 하는 것이다. ORDER BY는 정렬할 COL을 정하는 것이다. PARTITION은 COL 값 별로 순위를 매기는 것이라고 생각하면 쉽다.
RANK() OVER (PARTITION BY COL1 ORDER BY CO1 [ASC/DESC])
무엇을? RANK 된 열을
어디에서? lol_users에서
SELECT *, RANK() OVER(ORDER BY rating DESC) AS rank
FROM lol_users
22. lol_users 테이블에서 가장 늦게 게임을 시작한(join_date) 유저의 이름을 선택하는 쿼리를 작성해주세요
무엇을? 유저의 이름
어디에서? lol_users
조건은? 가장 게임을 늦게 시작 => join_date 값이 가장 낮은 열.
2가지 방법이 있다. 하나는 서브쿼리를 이용하는 것, 다른 하나는 LIMIT(TOP )를 이용하는 것이다.
// 서브 쿼리 사용
SELECT *
FROM lol_users
WHERE join_date = (SELECT max(join_date)
FROM lol_users)
// ORDER BY 사용
SELECT *
FROM lol_users
ORDER BY join_date DESC
LIMIT 1
23. lol_users 테이블에서 지역별로 레이팅이 높은 순으로 유저들을 정렬해서 나열하는 쿼리를 작성해주세요!
무엇을? 유저들
어디에서? lol_users 테이블에서
순서 ? 지역별로. 레이팅 높은순.
//23
SELECT *
FROM lol_users
ORDER BY region, rating DESC
24. lol_users 테이블에서 지역별로 평균 레이팅을 계산하는 쿼리를 작성해주세요!
무엇을? 평균을
어디에서? lol_users에서
조건은? region을 group by 해서. 그룹핑!
SELECT region, AVG(region)
FROM lol_users
GROUP BY region
일요일은 여기서 끝 : >
'백엔드 부트캠프[사전캠프] > 문제풀이' 카테고리의 다른 글
[내일배움캠프-사전캠프] SQL 단계별 문제 풀이 (0) | 2025.01.21 |
---|---|
[내일배움캠프-사전캠프] SQL 단계별 문제 풀이 (0) | 2025.01.21 |
[내일배움캠프-사전캠프] SQL 단계별 문제 풀이 (0) | 2025.01.20 |
[내일배움캠프-사전캠프] SQL 단계별 문제 풀이 (0) | 2025.01.18 |
[내일배움캠프-사전캠프] SQL 단계별 문제 풀이 (0) | 2025.01.17 |