MS-SQL Server 2005부터 서포트 합니다. 온라인 게임의 통계등에 많이 사용하는 순위나 랭킹 서비스에 많이 활용하는 함수입니다. USE AdventureWorks; GO SELECT i.ProductID, p.Name, i.LocationID, i.Quantity ,RANK() OVER (PARTITION BY i.LocationID ORDER BY i.Quantity DESC) AS 'RANK' FROM Production.ProductInventory i INNER JOIN Production.Product p ON i.ProductID = p.ProductID ORDER BY p.Name; GO 여기서 위의 예제처럼 Partition By 로 필드를 구분 지으면 지역별(i.LocationID)로 랭킹을 나눈다는 뜻이다. 서울, 부산의 두 지역이 있으면 서울에서의 랭킹과 부산에서의 랭킹이 서로 다르게 나타난다. Parition 뒤의 Order By 는 Rank를 순서짓는 순서가 된다. 즉, 온라인 게임에서 많이 사용하는 캐릭터 테이블에서.. 서버별, 직업별로 높은 레벨, 높은 경험치, 신규 캐릭터 순으로 랭킹을 만들어보면.. 테이블 : tCharacter 서버 : servername 직업 : jobname 레벨 : level 경험치 : exppoint 생성일 : regdt select servername, jobname, level, exppoint, regdt , rank() over (partition by servername, jobname order by level desc, exppoint desc, regdt desc) as Rank from tCharacter...