Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Reduce To Ranges aggregate function
"Dieter Noeth" <dnoeth_at_gmx.de> a écrit dans le message de news: ehdhat$sc1$1_at_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
Neat solution!
Regards
Michel Cadot
Received on Sat Oct 21 2006 - 11:44:19 CDT
![]() |
![]() |