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

Come devo gestire i dati classificati x su y in PostgreSQL?

Se vuoi il grado, fai qualcosa come

SELECT id,num,rank FROM (
  SELECT id,num,rank() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4

Oppure, se vuoi effettivamente il numero di riga, usa

SELECT id,num,row_number FROM (
  SELECT id,num,row_number() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4

Differiscono quando hai valori uguali da qualche parte. C'è anche dense_rank() se ne hai bisogno.

Ciò richiede PostgreSQL 8.4, ovviamente.