Nếu bạn muốn có thứ hạng, hãy làm điều gì đó như
SELECT id,num,rank FROM (
SELECT id,num,rank() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4
Hoặc nếu bạn thực sự muốn số hàng, hãy sử dụng
SELECT id,num,row_number FROM (
SELECT id,num,row_number() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4
Chúng sẽ khác nhau khi bạn có các giá trị bằng nhau ở đâu đó. Ngoài ra còn có secure_rank () nếu bạn cần.
Tất nhiên, điều này yêu cầu PostgreSQL 8.4.