George Young wrote:
>
> On Wed, 14 Mar 2001, you wrote:
> > On 3/14/01, 5:24:12 PM, George Young <gry@ll.mit.edu> wrote regarding [SQL]
> > I need to join successive log entries into one:
> > > I have a table like:
> >
> > > run | seq | start | done
> > > 1415| 261| 2001-01-29 12:36:55| 2001-02-07 13:02:38
> > > 1415| 263| 2001-02-14 07:40:04| 2001-02-15 16:05:04
> > > 1415| 264| 2001-02-16 16:05:05| 2001-03-08 16:34:03
> > > 1415| 265| 2001-03-08 16:34:04|
> >
> > Try:
> >
> > select run,min(start),max(done) from mytable group by run;
>
> Alas, this combines *all* entries for a given run, not just those that
> are imediately adjacent (in time, or by 'seq' number)...
I thought it was complicated, then I thought it was easy. Looks like I
was right first time.
I was thinking that some huge self-join might do it, but I can't see how
to go beyond a run of two adjacent entries.
The only thing I can think of is to add a "batch" column and build a
trigger to set it as data is inserted. I'm assuming the entries are put
in one at a time and in order. That way you just need to look at the
last entry to determine if the new one is in the same batch.
Any use?
- Richard Huxton
> --
> George Young, Rm. L-204 gry@ll.mit.edu
> MIT Lincoln Laboratory
> 244 Wood St.
> Lexington, Massachusetts 02420-9108 (781) 981-2756