2016-10-11 2 views
0

여러분이 내 문제를 도와 줄 수 있기를 바랍니다. 출력은오라클 SQL 쿼리 단계 번호

SELECT ID, (ROW_NUMBER() OVER(ORDER BY ID)), Date 
FROM MYTABLE; 

: I 출력이되고 싶습니다

No. Identification No. Date 
1 100010    11-Jul-15 
2 100011    7-Jul-15 

는 당신이 필요로이 가능?

No. Identification No. Date 
1 100010    7-Jul-15 
2 100010    10-Jul-15 
3 100010    11-Jul-15 
1 100011    7-Jul-15 
2 100011    10-Jul-15 
3 100011    11-Jul-15 
+0

제공된 샘플 데이터에 누락 된 레코드가 있어야합니다. –

+0

출력 뒤에있는 논리가 명확하지 않습니다. 7 월 8 일과 9 일은 어떨까요? 7 월 3 일과 같은 다른 행이 있다면 어떻게 될까요? – Aleksej

+0

어쨌든 나는 당신의 SQL 문이 출력에 어떻게 연결되는지 알지 못한다. ROW_NUMBER()의 출력은 분명히 당신의 "Identification No"가 될 수 없다 ... 아마도 ROW_NUMBER()의 출력을 그래서 : ROW_NUMBER() OVER (파티션 BY ORDER BY ID) – sers

답변

0

입니다 는 지금, 나는 아래의 쿼리를이 날짜 목록 :

select d.dte, t.id, 
     row_number() over (partition by id order by dte) as num 
from t cross join 
    (select date '2015-07-07' as dte from dual union all 
     select date '2015-07-10' as dte from dual union all 
     select date '2015-07-11' as dte from dual 
    ) d; 
+0

파티션을 추가하여 작동했습니다. 당신의 도움을 주셔서 감사합니다. –

0

row_number()를 파티션해야합니다.

SELECT ROW_NUMBER() OVER(PARTITION BY Id ORDER BY Date) as Row_ord, 
     ID, 
     Date 
FROM MYTABLE; 
+0

고마워!, 이드로 파티션을 추가하면 효과가있다. –