2013-09-25 4 views
0

SQL Server 스크립트 내에서 다음 작업을 수행 할 수 있는지 알고 싶습니다.SQL ROW_NUMBER LIKE 함수

의 내가 예에서 ID를 INT있는 상황이 간단하게하려면 다음 표

** 있다고 가정 해 봅시다. 내 실제 시나리오에서 이들은 UNIQUEIDTIFIER입니다.

ParentId  ChildId 
----------------------- 
101   201   
101   202  
101   203  
102   204   
102   205  
103   206  
103   207  
103   208   
103   209  

다음 결과를 얻으려면이 테이블을 쿼리하고 싶습니다.

지금까지 ROW_NUMBER() 함수를 사용하여 ChildIndex 열을 가져올 수있었습니다. 지금

ParentId  ChildId ChildIndex ParentIndex 
--------------------------------------------------- 
101   201  1    1 
101   202  2    1 
101   203  3    1 
102   204  1    2 
102   205  2    2 
103   206  1    3 
103   207  2    3 
103   208  3    3 
103   209  4    3 

여기까지

SELECT ParentId, 
     ChildId, 
     ROW_NUMBER() OVER (PARTITION BY ParentId ORDER BY ParentId DESC) AS ChildIndex 
FROM MyTable 

답변

1

DENSE_RANK() 당신이 필요로하는 모든 내 쿼리입니다 ... ParentIndex 열 고민하고있다.

DENSE_RANK() OVER (ORDER BY ParentId DESC) AS ParentIndex 
+0

감사합니다 ... 이전에 시도했지만 쿼리 내에서 PARTITION BY 절을 유지했습니다. 그것이 작동하지 않는 이유입니다. – Baral