Överväg att partition by
att likna de fält som du skulle group by
, sedan, när partitionsvärdena ändras, startar fönsterfunktionen om vid 1
EDITas indikerat av a_horse_with_no_name, för detta behov behöver vi dense_rank()
till skillnad från row_number()
rank()
eller dense_rank()
upprepa siffrorna den tilldelar. row_number()
måste vara ett annat värde för varje rad i en partition. Skillnaden mellan rank()
och dense_rank()
är den senare inte "hoppar över" siffror.
För din fråga försök:
dense_rank() over (partition by Username, Game order by ct."date") as "Attempts"
Du delar inte upp och sorterar efter samma fält förresten; bara beställa genom skulle vara tillräckligt om det var behovet. Det är inte här.