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.