Я не знаю, поддерживает ли это ваша версия СУБД (хотя я, скорее, подозреваю, что это так), но вот рекурсивная версия:
WITH remaining (fld, times) as (SELECT fld, 1
FROM <table>
UNION ALL
SELECT a.fld, a.times + 1
FROM remaining as a
JOIN <table> as b
ON b.fld = a.fld
AND b.number > a.times)
SELECT fld
FROM remaining
ORDER BY fld
Учитывая вашу таблицу исходных данных, она выводит это (количествовключено для проверки):
fld times
=============
1 1
1 2
1 3
1 4
1 5
2 1
2 2