728x90
[MS-SQL] RANK(), DENSE_RANK(), ROW_NUMBER() 차이
위 구문들은 MS-SQL에서 순위를 매기기 위해 주로 사용하게 되는 구문이다.
ROW_NUMBER() OVER ([<partition_by_clause>] <order_by_clause>)
RANK() OVER ([<partition_by_clause>] <order_by_clause>)
DENSE_RANK() OVER ([<partition_by_clause>] <order_by_clause>)
성 | 성적 | ROW_NUMBER | RANK | DENSE_RANK |
강 | 85 | 1 | 1 | 1 |
김 | 85 | 2 | 1 | 1 |
홍 | 82 | 3 | 3 | 2 |
이 | 80 | 4 | 4 | 3 |
위에 테이블 명이 [성적]인 경우 셀렉트 방법
SELECT RANK() OVER (PARTITION BY 성ORDER BY 성적) AS 'RANK'
, DENSE_RANK() OVER (PARTITION BY 성ORDER BY 성적) AS 'DENSE_RANK'
, ROW_NUMBER() OVER (PARTITION BY 성ORDER BY 성적) AS 'ROW_NUMBER'
FROM 성적
위와 같이 사용하면 된다.
더 자세한 내용 참고 하고 싶다면,
http://thehobt.blogspot.com/2009/02/rownumber-rank-and-denserank.html
728x90
'개발및업무 > SQL' 카테고리의 다른 글
[MS-SQL] 특정 테이블 권한 주기 (0) | 2011.08.18 |
---|---|
MSSQL저장프로시저 및 시스템 테이블 정보 (0) | 2011.08.17 |
SQL Native Client(SNAC) (0) | 2011.07.26 |
Sqlite 데이터 MS-sql 이관 방법 (0) | 2011.06.21 |
dts.dll 오류 (0) | 2011.06.21 |