Mam strukturę tabeli jak poniżejjak sekwencjonowanie gorups liczba sub
id wstage wstatus wdate
101 Unaquired create 2013-08-29 17:07:20.040
101 Unaquired rework 2013-08-29 18:07:20.040
101 inprocess accqui 2013-08-29 19:07:20.040
101 inprocess alloca 2013-08-29 20:07:20.040
101 Unaquired create 2013-08-29 21:07:20.040
101 Unaquired rework 2013-08-29 22:07:20.040
muszę Ten numer jak
id wstage wstatus wdate rownumber
101 Unaquired rework 2013-08-29 22:07:20.040 1
101 Unaquired create 2013-08-29 21:07:20.040 1
101 inprocess alloca 2013-08-29 20:07:20.040 2
101 inprocess accqui 2013-08-29 19:07:20.040 2
101 Unaquired rework 2013-08-29 18:07:20.040 3
101 Unaquired create 2013-08-29 17:07:20.040 3
Próbuję użyć funkcji
select *,ROW_NUMBER() over (partition by id,wstage order by wdate desc) rownumber
ale to nie daje pożądanego wyniku. Nie chcę używać pl/sql jest tam funkcja rankingu lub proste zapytanie, aby to osiągnąć. mój stół ma 50 milionów rekordów.
W 2012 roku można użyć funkcji 'ROWS'. W 2008 r. Musi to być bardziej złożone zapytanie. Aby uzyskać najlepszą wydajność, być może kursor. –
Nie ma logiki w zestawie wyników. Dlaczego dwa ostatnie wiersze mają 'rownumber = 3'? –
@AndreyGordeev 'rownumber' jest w porządku malejącym według "wdate". aby zmiana w "wstąpieniu" miała wzrosnąć. – Gokul