DENSE_RANK ( ) OVER ( [ <partition_by_clause> ] < order_by_clause > )
FROM 절이 생성한 결과 집합을 DENSE_RANK 함수가 적용되는 파티션으로 나눕니다. PARTITION BY 구문은 OVER 절(Transact-SQL)을 참조하십시오.
DENSE_RANK 값이 파티션 내의 행에 적용되는 순서를 결정합니다. 순위 함수에 사용된 <order_by_clause>의 열에 정수를 나타낼 수 없습니다.
같은 파티션에서 한 순위에 두 개 이상의 행이 연결된 경우 연결된 각 행에는 같은 순위가 지정됩니다. 예를 들어 성과가 가장 좋은 두 명의 판매 직원이 같은 SalesYTD 값을 갖는 경우 둘 다 1로 순위가 지정됩니다. 다음으로 높은 SalesYTD 값을 갖는 판매 직원이 순위 2로 지정됩니다. 이는 해당 행 앞에 오는 개별 행의 수보다 하나 더 큰 값입니다. 따라서 DENSE_RANK 함수가 반환하는 수는 간격 없이 항상 연속적인 순위를 갖게 됩니다.
전체 쿼리에 사용되는 정렬 순서는 결과에 나타나는 행의 순서를 결정합니다. 이는 순위 1로 지정된 행이 반드시 파티션에서 첫 번째 행일 필요는 없음을 의미합니다.
USE AdventureWorks2008R2; GO SELECT i.ProductID, p.Name, i.LocationID, i.Quantity, DENSE_RANK() OVER (PARTITION BY i.LocationID ORDER BY i.Quantity) AS DENSE_RANK FROM Production.ProductInventory i INNER JOIN Production.Product p ON i.ProductID = p.ProductID ORDER BY Name; GO
'Databases' 카테고리의 다른 글
twitter이 github 공개한 기술들을 보니 (0) | 2012.05.07 |
---|---|
phpmyadmin에 cvs import (0) | 2012.02.14 |
하둡 Technical Review(DBguid.net) (0) | 2011.12.15 |
웹 게시판 구축의 밑거름 오픈소스 DBMS(DBguid.net) (0) | 2011.12.15 |
mongodb와 mysql의 CRUD 연산의 성능 비교 (0) | 2011.12.12 |