Re: do I need a table function to do this - Mailing list pgsql-general

From Sim Zacks
Subject Re: do I need a table function to do this
Date
Msg-id 50DFF95A.1080907@compulab.co.il
Whole thread Raw
In response to do I need a table function to do this  (Kirk Wythers <kwythers@umn.edu>)
List pgsql-general
<meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    body p { margin-bottom: 0cm; margin-top: 0pt; }

  <body style="direction: ltr;"
    bidimailui-detected-decoding-type="latin-charset" bgcolor="#FFFFFF"
    text="#000000">
    Do you have a unique key on
      site,variable?
      If not, what do you want in the treatment column if there are rows
      for both treatments X and Y  or 2 Xs for a specific site and
      variable?

      If your data makes sense, you can pivot table t1 and then full
      join t2.

      Sim


      On 12/29/2012 11:45 PM, Kirk Wythers wrote:

    <blockquote cite="mid:99CCEF6F-37D8-4C1A-B4A7-DA8FF19D5048@umn.edu"
      type="cite">
      I have been given an interesting problem to solve in a postgres db. I was given two tables

t1:


site        treatment        variable        id (pk)
-------------------------------------------------------------
A        X                BLUE        1A
B        Y                RED        2B
A        Y                GREEN        3A



t2:

rowid (pk)    timestamp        BLUE        RED        GREEN
-----------------------------------------------------------------------------------------
1            1332493200        3.4            2.1            5.8
2            1332496800        3.2            2.0            5.8
3            1332500400        3.3            2.2            6.0


I need to combine the site and treatment information from t1 with the variable records in t2. I think I will have to
combinethese one variable at a time. Something like this (I'm not using the word join, because I don't think this is a
joinin the regular sense. It's more like some kind of crazy pivot table thing!): 

t3:

rowid (pk)    timestamp        BLUE        site         treatment
-------------------------------------------------------------------------------------
1            1332493200        3.4            A        X
2            1332496800        3.2            A        X
3            1332500400        3.3            A        X

and then:

t4

rowid (pk)    timestamp        RED        site         treatment
-------------------------------------------------------------------------------------
1            1332493200        2.1            B        Y
2            1332496800        2.0            B        Y
3            1332500400        2.2            B        Y


Is this even possible?

pgsql-general by date:

Previous
From: terenceng
Date:
Subject: Re: Installing pgAgent with MS Windows
Next
From: Amit kapila
Date:
Subject: Re: Cursor fetch Problem.