Ако искате ранга, направете нещо като
SELECT id,num,rank FROM (
SELECT id,num,rank() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4
Или ако наистина искате номера на реда, използвайте
SELECT id,num,row_number FROM (
SELECT id,num,row_number() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4
Те ще се различават, когато имате еднакви стойности някъде. Има и dense_rank(), ако имате нужда от това.
Това изисква PostgreSQL 8.4, разбира се.