PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Função de janela do PostgreSQL:row_number() over (partição col ordem por col2)


Considere partition by para ser semelhante aos campos que você group by , então, quando os valores da partição mudam, a função de janela é reiniciada em 1

EDIT como indicado por a_horse_with_no_name, para esta necessidade precisamos de dense_rank() ao contrário de row_number() rank() ou dense_rank() repita os números que ele atribui. row_number() deve ser um valor diferente para cada linha em uma partição. A diferença entre rank() e dense_rank() é o último não "pula" números.

Para sua consulta tente:
dense_rank() over (partition by Username, Game order by ct."date") as "Attempts"

A propósito, você não particiona e ordena pelo mesmo campo; apenas ordenar por seria suficiente se essa fosse a necessidade. Não está aqui.