ランクが必要な場合は、次のようにします
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
どこかに等しい値がある場合、それらは異なります。必要に応じて、density_rank()もあります。
もちろん、これにはPostgreSQL8.4が必要です。