PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie soll ich in PostgreSQL mit x von y bewerteten Daten umgehen?

Wenn Sie den Rang möchten, tun Sie so etwas wie

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

Oder wenn Sie wirklich die Zeilennummer wollen, verwenden Sie

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

Sie unterscheiden sich, wenn Sie irgendwo gleiche Werte haben. Es gibt auch dense_rank() falls du das brauchst.

Dies erfordert natürlich PostgreSQL 8.4.