On 30 December 2010 12:19, Lukasz Brodziak <[email protected]>wrote:
> Hello,
>
> I have a problem with writing a select statement that would return
> records for which difference in values of this and following ID is
> bigger than 1. Example table
> ID Data
> 1 Text
> 2 Text2
> 5 Text5
> 23 Text23
> 24 TXT
> 25 RRRR
>
> So I need to return rows with IDs 2,5,23.
>
Hi,
sorry, I don't get it. If difference between current and following id should
be bigger than 1, then returned rows should be only 2 and 5. Not 23.
You can do it this way:
select lag
from
(select
id,
lag(id) over (order by id)
from x
order by id) a
where
id-lag > 1;
regards
Szymon