SQL-L3-001 / 윈도 순위
부서별 점수 순위
중급문제
staff의 id와 부서 내 점수 내림차순 RANK를 id순으로 조회하세요. 동점은 같은 순위이고 다음 순위는 건너뜁니다.
결과의 열 순서와 행 순서를 지키세요. 별칭 이름은 자유지만 열 개수와 값은 일치해야 합니다. SQLite 기준입니다.
입출력 예시
테이블과 예제 데이터
CREATE TABLE staff (id INTEGER, name TEXT, dept TEXT, score INTEGER); INSERT INTO staff VALUES (1,'a','X',80),(2,'b','X',90),(3,'c','Y',70),(4,'d','Y',70),(5,'e','X',90);
첫 데이터의 기대 결과 · 행 순서대로
[
[
1,
3
],
[
2,
1
],
[
3,
1
],
[
4,
1
],
[
5,
1
]
]서로 다른 준비 데이터 2개에서 확인해요.
힌트
윈도 파티션과 점수 정렬을 분리해 지정하세요.
해설·정답 보기
RANK는 동점 뒤 순위 간격을 유지합니다. 최종 출력 순서는 별도의 ORDER BY로 정합니다.
SELECT id,RANK() OVER(PARTITION BY dept ORDER BY score DESC) FROM staff ORDER BY id;
query.sql결과 비교
코드는 이 브라우저에 자동 저장돼요.
풀이 결과
코드를 작성하고 채점하기를 눌러보세요.
학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.