2017-11-13 15 views
2

아래와 같은 결과를 사용하여 ROW_NUMBER() 함수를 TERADATA와 함께 사용할 수있는 방법을 결정하려고합니다. 여기에 내가 시도 것입니다 :Row_Number with Teradata GROUPBY

select col1, col2, ROW_NUMBER() OVER (ORDER by col2 ) 
    FROM 
    (select col1, col2 
    from TABLE 
    ORDER BY col2) A 

결과 설정 예상

38 11/14/2016 1 
38 11/15/2016 2 
38 11/16/2016 3 
38 11/17/2016 4 
38 11/18/2016 5 
38 11/19/2016 6 
39 11/20/2016 7 
39 11/21/2016 8 
39 11/22/2016 9 
39 11/23/2016 10 
39 11/24/2016 11 
39 11/25/2016 12 

:

당신은 PARTITION BY를 추가 할 필요가
Col1 Col2 Col3 
38 11/14/2016 1 
38 11/15/2016 1 
38 11/16/2016 1 
38 11/17/2016 1 
38 11/18/2016 1 
38 11/19/2016 1 
39 11/20/2016 2 
39 11/21/2016 2 
39 11/22/2016 2 
39 11/23/2016 2 
39 11/24/2016 2 
39 11/25/2016 2 
+0

어떤 테라 데이타 버전을 사용하고 있습니까? – zarruq

+0

14.10.06.10 D2D – Warz

+0

그럼'DENSE_RANK()'가 작동해야합니다 – zarruq

답변

4

:

SELECT col1, 
     col2, 
     ROW_NUMBER() OVER (PARTITION BY col1 ORDER by col2) AS row_index 
FROM TABLE 
ORDER BY col2 

글쎄, 그것은처럼 보인다 당신은 실제로 필요합니다 :

SELECT col1, 
     col2, 
     DENSE_RANK() OVER (ORDER by col1) AS row_index 
FROM TABLE 
ORDER BY col2 
+0

고마워요 @GordonLinoff – Lamak

+0

col1로 그룹화하고 col2로 정렬하고 그 순서대로 행 번호를 만들고 싶습니다. 파티션이 내 결과 집합을 변경하는 것 같습니다. – Warz

+0

@Warz 결과 집합을 어떻게 변경하나요? – Lamak