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 [EMAIL PROTECTED]
MIT Lincoln Laboratory
244 Wood St.
Lexington, Massachusetts 02420-9108 (781) 981-2756
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])