ich wie eine Tabellenstruktur haben unterwie Anzahl Unter gorups sequenzieren
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
ich diese wie
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
an die Nummer habe ich Funktion
select *,ROW_NUMBER() over (partition by id,wstage order by wdate desc) rownumber
zu verwenden, versuche aber Dies gibt nicht die gewünschte Ausgabe. Ich möchte pl/sql nicht verwenden, gibt es eine Ranking-Funktion oder einfache Abfrage, um dies zu erreichen. Mein Tisch hat 50 Millionen Einträge.
Im Jahr 2012 könnten Sie die Funktion "ROWS" verwenden. Im Jahr 2008 muss es eine komplexere Abfrage sein. Für die beste Effizienz vielleicht einen Cursor. –
Es gibt keine Logik in Ihrer Ergebnismenge. Warum haben zwei letzte Zeilen 'rownumber = 3'? –
@AndreyGordeev "rownumber" ist in der Reihenfolge von "wdate". Die Änderung der "Wage" -Rennummer sollte inkorrekt sein. – Gokul