ho avuto l'insieme di dati come seguirenumero Ripristino riga in base al cambiamento dei dati record di
name date
x 2014-01-01
x 2014-01-02
y 2014-01-03
x 2014-01-04
e sto cercando di ottenere questo risultato
name date row_num
x 2014-01-01 1
x 2014-01-02 2
y 2014-01-03 1
x 2014-01-04 1
ho provato per eseguire la query
select name,
date,
row_number() over (partition by name order by date) as row_num
from myTBL
ma purtroppo ottengo questo risultato
012.351.name date row_num
x 2014-01-01 1
x 2014-01-02 2
y 2014-01-03 1
x 2014-01-04 3
per favore aiuto.
quale database - sql server, oracle ecc.? qual è la logica per assegnare il numero di riga in questo modo? cosa stai cercando di fare finalmente? –
L'istruzione 'partition by' dice che le partizioni sono basate esclusivamente su' name'. Il risultato che hai ottenuto è il risultato che hai richiesto. Il risultato che sembri voler è che le partizioni vengano ripristinate ogni volta che cambia * un * run * di 'name'. Non penso che tu possa farlo con una semplice funzione di finestra. Avrai bisogno di uno o due livelli di subquery. –
Per i futuri utenti, questo rientra nella classe dei problemi noti come [tag: gaps-and-islands]. –