Envisagez de partition by
être similaire aux champs que vous souhaitez group by
, puis, lorsque les valeurs des partitions changent, la fonction de fenêtrage redémarre à 1
EDITcomme indiqué par a_horse_with_no_name, pour ce besoin nous avons besoin de dense_rank()
contrairement à row_number()
rank()
ou dense_rank()
répéter les numéros qu'il attribue. row_number()
doit être une valeur différente pour chaque ligne d'une partition. La différence entre rank()
et dense_rank()
est ce dernier ne "saute" pas les numéros.
Pour votre requête, essayez :
dense_rank() over (partition by Username, Game order by ct."date") as "Attempts"
Au fait, vous ne partitionnez pas et ne commandez pas le même champ ; juste commander par serait suffisant si c'était le besoin. Ce n'est pas ici.