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

PostgreSQL vinduesfunktion:row_number() over (partition col order by col2)

Overvej at partition by at ligne de felter, som du ville group by , så, når partitionsværdierne ændres, genstarter vinduesfunktionen ved 1

EDITas angivet med a_horse_with_no_name, til dette behov har vi brug for dense_rank() i modsætning til row_number() rank() eller dense_rank() gentag de numre, den tildeler. row_number() skal være en forskellig værdi for hver række i en partition. Forskellen mellem rank() og dense_rank() er sidstnævnte ikke "springer" tal over.

For din forespørgsel prøv:

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

Du opdeler ikke efter, og bestiller efter, det samme felt i øvrigt; bare at bestille ved ville være tilstrækkeligt, hvis det var behovet. Det er her ikke.




  1. Python, konverter 4-byte tegn for at undgå MySQL-fejl Forkert strengværdi:

  2. Datatabeller, der forbinder tabeller, søgning og rækkefølge sidder fast med kodetænder

  3. MySQL sletter ikke poster

  4. FORALL erklæring med INDICES-OF bundet klausul i Oracle-databasen