Special grouping on sorted data. - Mailing list pgsql-sql

From Nicolas Beuzeboc
Subject Special grouping on sorted data.
Date
Msg-id 48D82102.6090404@norchemlab.com
Whole thread Raw
Responses Re: Special grouping on sorted data.  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Special grouping on sorted data.  (Craig Ringer <craig@postnewspapers.com.au>)
List pgsql-sql
Hi,

I was looking for a simple solution to this problem. I can't find a way 
to group on b and n by just collapsing sequential n's (identical n's 
right next to each other) the sorting condition is the timestamp.
b    | n  |         stamp
----------------------------------------A    | 1  | 2008-09-20 06:07:47.981445A    | 1  | 2008-09-20 06:08:13.294306A
| 1  | 2008-09-20 06:12:02.046596A    | 2  | 2008-09-20 06:12:26.267786A    | 2  | 2008-09-20 06:12:47.750429A    | 1
|2008-09-20 06:13:12.152512A    | 2  | 2008-09-20 06:13:39.052528A    | 2  | 2008-09-20 06:14:12.875389B    | 1  |
2008-09-2006:14:29.963352B    | 1  | 2008-09-20 06:14:52.247307B    | 3  | 2008-09-20 06:15:13.358151B    | 3  |
2008-09-2006:15:44.307792B    | 3  | 2008-09-20 06:16:17.32131B    | 2  | 2008-09-20 06:16:44.030435B    | 2  |
2008-09-2006:17:00.140907C    | 1  | 2008-09-20 06:17:50.067258C    | 1  | 2008-09-20 06:18:22.280218C    | 1  |
2008-09-2006:18:41.661213C    | 1  | 2008-09-20 06:19:07.920327C    | 3  | 2008-09-20 06:19:26.166675C    | 2  |
2008-09-2006:19:46.459439C    | 2  | 2008-09-20 06:20:04.634328
 

Here I give an example of the output I'm looking for, And I can find a 
way to do that in crystal report, but I would like postgresql to send it 
that way. If the next n is different create a new row.
 b    | n  |        min_stamp           | max_stamp
--------------------------------------------------------------------- A    | 1  | 2008-09-20 06:07:47.981445 |
2008-09-2006:12:02.046596 A    | 2  | 2008-09-20 06:12:26.267786 | 2008-09-20 06:12:47.750429 A    | 1  | 2008-09-20
06:13:12.152512| 2008-09-20 06:13:12.152512 A    | 2  | 2008-09-20 06:13:39.052528 | 2008-09-20 06:14:12.875389 B    |
1 | 2008-09-20 06:14:29.963352 | 2008-09-20 06:14:52.247307 B    | 3  | 2008-09-20 06:15:13.358151 | 2008-09-20
06:16:17.32131B    | 2  | 2008-09-20 06:16:44.030435 | 2008-09-20 06:17:00.140907 C    | 1  | 2008-09-20
06:17:50.067258| 2008-09-20 06:19:07.920327 C    | 3  | 2008-09-20 06:19:26.166675 | 2008-09-20 06:19:26.166675 C    |
2 | 2008-09-20 06:19:46.459439 | 2008-09-20 06:20:04.634328
 

If I write a GROUP BY b,n there is going to be only two rows for b = 
'A', if I use distinct on i get the same thing

is there an easy way to do that ?

Nicolas





pgsql-sql by date:

Previous
From: Mike Toews
Date:
Subject: Multi-line text fields
Next
From: Tom Lane
Date:
Subject: Re: Special grouping on sorted data.