PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Funzione finestra PostgreSQL:row_number() over (partition col order by col2)

Considera partition by essere simili ai campi per i quali group by , quindi, quando i valori della partizione cambiano, la funzione di windowing si riavvia da 1

EDIT come indicato da a_horse_with_no_name, per questa esigenza abbiamo bisogno di dense_rank() a differenza di row_number() rank() o dense_rank() ripetere i numeri che assegna. row_number() deve essere un valore diverso per ogni riga in una partizione. La differenza tra rank() e dense_rank() è quest'ultimo non "salta" i numeri.

Per la tua domanda prova:

dense_rank() over (partition by Username, Game order by ct."date") as "Attempts"

A proposito, non partizioni e ordini per lo stesso campo; basta ordinare per se questo fosse il bisogno. Non è qui.