One way would be: ``` with series(value) as ( select 1 where exists ( select * from EventTable where EventType = 35 ) union all select value + 1 from series where value < ( select max(Details) from EventTable where EventType = 35 ) ) select value from series; ``` or, if using the generate_series (series.c) extension: ``` select value from generate_series where start = 1 and stop = ( select max(Details) from EventTable where EventType = 35 ); ```