Hvis du vil have rangeringen, skal du gøre noget lignende
SELECT id,num,rank FROM (
SELECT id,num,rank() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4
Eller hvis du rent faktisk vil have rækkenummeret, så brug
SELECT id,num,row_number FROM (
SELECT id,num,row_number() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4
De vil adskille sig, når du har lige værdier et eller andet sted. Der er også dense_rank(), hvis du har brug for det.
Dette kræver selvfølgelig PostgreSQL 8.4.