sql >> Database >  >> RDS >> PostgreSQL

Hoe moet ik omgaan met gerangschikte x van y-gegevens in PostgreSQL?

Als je de rang wilt, doe dan iets als

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

Of als u het rijnummer echt wilt, gebruik dan

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

Ze zullen verschillen als je ergens gelijke waarden hebt. Er is ook density_rank() als je dat nodig hebt.

Dit vereist natuurlijk PostgreSQL 8.4.



  1. Is kruistabelindexering mogelijk?

  2. Rails 3.2 Postgres Save Error ActiveRecord::StatementInvalid:PG::Error:ERROR:Syntaxisfout bij 'T' op positie 5

  3. Juiste manier om te vragen of mysql_num_rows in PHP is

  4. Selecteer count(*) uit meerdere tabellen