Если у вас есть столбец id, вы можете сделать это:
select a.*,
(select count(*) from mytable b where b.id <= a.id) as rownum
from mytable a
order by id;
Конечно, это работает только в том случае, если вы можете заказать rownums в том же (или противоположном) порядке, что и порядок идентификаторов.
Если вы выбираете правильное подмножество строк, конечно, вам необходимо применить один и тот же предикат ко всему выделенному и подзапросу:
select a.*,
(select count(*) from table b where b.id <= a.id and b.foo = 'X') as rownum
from table a where a.foo = 'X'
order by id;
Очевидно, это не особенно эффективно.