need to join successive log entries into one

From: George Young <gry(at)ll(dot)mit(dot)edu>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: need to join successive log entries into one
Date: 2001-03-14 17:24:12
Message-ID: 01031413092300.02477@pen
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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|
1747| 257| 2001-02-15 09:14:39| 2001-03-01 08:58:03
1747| 258| 2001-03-01 08:58:04| 2001-03-01 09:01:27
1747| 260| 2001-03-01 09:01:39| 2001-03-01 09:02:39
1747| 262| 2001-03-05 13:13:58|
1954| 218| 2001-02-02 20:55:39| 2001-02-08 12:44:48
1954| 219| 2001-02-08 12:44:49| 2001-02-08 12:47:36
1954| 220| 2001-02-08 12:47:36| 2001-02-08 16:50:33
1954| 221| 2001-02-08 16:50:33| 2001-02-08 16:50:45
1954| 222| 2001-02-08 16:50:46| 2001-02-12 14:36:41
1954| 223| 2001-02-12 14:36:41| 2001-03-02 10:17:15

This is a log of some operations done on some runs. 'seq' is the step
within the run.

I need to produce a new table that coalesces immediately successive
operations on a run into one, e.g.:

run | start | done
1415| 2001-01-29 12:36:55| 2001-02-07 13:02:38
1415| 2001-02-14 07:40:04|
1747| 2001-02-15 09:14:39| 2001-03-01 09:02:39
1747| 2001-03-05 13:13:58|
1954| 2001-02-02 20:55:39| 2001-03-02 10:17:15

i.e. where a run has one or more steps with succesive seq values,
or equivalently, with abutting start/end values, then I want
the new table to have only one entry representing the full span of
time. Null 'done' just means it's not done yet.

Unfortunately, the start time of a 'succesive' op is sometimes 1 second
later that the 'done' time of the previous one, so maybe using
the seq field is simpler.

Can anyone think of a way I can do this in postgres?

--
George Young, Rm. L-204 gry(at)ll(dot)mit(dot)edu
MIT Lincoln Laboratory
244 Wood St.
Lexington, Massachusetts 02420-9108 (781) 981-2756

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tim Perdue 2001-03-14 17:50:15 Rule/currval() issue
Previous Message Jie Liang 2001-03-14 17:04:49 Re: pl/Perl