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: Mike King <emailMK_at_excite.com>
Date: Thu, 19 Oct 2006 14:11:44 -0400
Message-ID: <12jfg0la73vvk9e@corp.supernews.com>


> SQL> col Range format a20
> SQL> with
> 2 step1 as (
> 3 select id,
> 4 case
> 5 when nvl(lag(id) over (order by id),-1) != id-1 then id
> 6 end grp
> 7 from t),
> 8 step2 as (
> 9 select id,
> 10 max(grp) over (order by id) grp
> 11 from step1
> 12 )
> 13 select min(id)||decode(min(id),max(id),'','-'||max(id)) "Range"
> 14 from step2
> 15 group by grp
> 16 /
> Range
> --------------------
> 1-5
> 11-12
> 45
>
> 3 rows selected.
>
> Regards
> Michel Cadot

I agree with Frank. Wow! Thanks! Received on Thu Oct 19 2006 - 13:11:44 CDT

Original text of this message

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