One column to multiple columns based on constraints?

From: "Davor J(dot)" <DavorJ(at)live(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: One column to multiple columns based on constraints?
Date: 2010-02-08 14:55:54
Message-ID: hkp8lk$2ls2$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Let's say you have a table:
CREATE TABLE t (
time date,
data integer
)

Suppose you want a new table that has columns similar to the following:
"(x.time, x.data, y.time, y.data, z.time, z.data)" where x.time, y.time and
z.time columns are constrained (for example x.time >2007 AND x.time <2008,
y.time >2008 AND y.time < 2009, z.time > 2010)

How would you do this. Note that you can not use JOIN as there is no
relationship.

Currently I came up with something like this:

SELECT X.*, (SELECT Y.time, Y.data FROM t AS Y WHERE Y.time = X.time + 1),
(SELECT Z.time .) FROM t AS X WHERE X.time >2007 AND X.time <2008

But it's somewhat awkward. I thought maybe someone has better idea's. Any
input is welcome.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Davor J. 2010-02-08 15:08:42 Creating subsets on timestamp with modulo, date_trunc and ?suggestions?
Previous Message Alvaro Herrera 2010-02-08 14:42:34 Re: Multiple buffer cache?