Pokud chcete hodnost, udělejte něco jako
SELECT id,num,rank FROM (
SELECT id,num,rank() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4
Nebo pokud skutečně chcete číslo řádku, použijte
SELECT id,num,row_number FROM (
SELECT id,num,row_number() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4
Budou se lišit, když budete mít někde stejné hodnoty. Pokud to potřebujete, existuje také dense_rank().
To samozřejmě vyžaduje PostgreSQL 8.4.