ho una struttura di tabella come di seguitocome sequenza gorups numero 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
devo annoverare questo come
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
Sto cercando di utilizzare la funzione
select *,ROW_NUMBER() over (partition by id,wstage order by wdate desc) rownumber
ma questo non sta dando l'output desiderato. Non voglio usare pl/sql c'è una funzione di classificazione o una semplice query per ottenere questo. il mio tavolo ha 50 milioni di dischi.
Nel 2012, è possibile utilizzare la funzione 'ROWS'. Nel 2008, deve essere una query più complessa. Per la migliore efficienza, forse un cursore. –
Non c'è alcuna logica nel set di risultati. Perché due ultime righe hanno 'rownumber = 3'? –
@AndreyGordeev 'Rownumber' è in ordine decrescente di 'wdate'. per il cambio di "wstage", "rownumber" dovrebbe incuementare. – Gokul