Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Reduce To Ranges aggregate function

Re: Reduce To Ranges aggregate function

From: Dieter Noeth <dnoeth_at_gmx.de>
Date: Sat, 21 Oct 2006 18:19:35 +0200
Message-ID: <ehdhat$sc1$1@online.de>


Mike King wrote:

> ID
> ----
> 1
> 2
> 3
> 4
> 5
> 11
> 12
> 45
>
> Reduced form: 1-5,11-12,45

Consecutive values are easy to find using OLAP-functions:

select

   min(id), max(id)
from
  (
   select

     id,
     id - row_number() over (order by id) grp
   from t
  ) dt
group by grp

If id is not unique use dense_rank instead of row_number...

Dieter Received on Sat Oct 21 2006 - 11:19:35 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US