deducing ranges in SQL

From: Oxnard <oxnardNO_SPAM_at_comcast.net>
Date: Sun, 26 Feb 2006 21:39:59 -0600
Message-ID: <kcSdnbo_T9IT6Z_ZRVn-rA_at_comcast.com>



Oracle 9.2.0.6 in AIX

I am trying to find ranges and where the range ends for each d_no: The increment of val is one

My example is:

select * from t1

d_no val

1        20
1        21
1       22
1       23
1       25
1      1503
1      1504
3      502
3       503
3        504
3        600

I am trying to come up with an SQL which would produce an output of

d_no      the_range
1         20-23
1         25
1         1503-1504
3         502-504
3         600

I have tried using some of the analytic functions and got close with lead but not quite. I could do a cursor in
PL/SQL but the table is so huge it takes way to long. In fact I did do this on a small table. It worked just fine.
Also what I am showing as a table is really an in-line view of a couple of tables I have joined.

Any ideas would really be helpful

Thank you Received on Mon Feb 27 2006 - 04:39:59 CET

Original text of this message