Re: SQL (table transposition)

From: Mark Volpe <volpe(dot)mark(at)epamail(dot)epa(dot)gov>
To: Dana(dot)Reed(at)clinicaldatacare(dot)com
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: SQL (table transposition)
Date: 2000-08-03 15:46:27
Message-ID: 398993D3.D421AAB7@epamail.epa.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hope you like black magic :)

SELECT IND AS T1_INDEX, MIN(CASE WHEN KEY=1 THEN VALUE ELSE NULL END) AS
KEY1VAL, MIN(CASE WHEN KEY=2 THEN VALUE ELSE NULL END) AS KEY2VAL, MIN(CASE
WHEN KEY=3 THEN VALUE ELSE NULL END) AS KEY3VAL FROM T2 GROUP BY IND ORDER BY
IND;

Mark

Dana(dot)Reed(at)clinicaldatacare(dot)com wrote:
>
> Is there any way to get table T3 (below) from T1 and T2 using SQL (select, view, etc)?
>
> T3 is basically all INDEX values from T1 matched to IND from T2 with the corresponding KEY/VALUE pairs transposed from rows to columns.
>
> -------
> |INDEX| (T1)
> -------
> | 1 |
> | 2 |
> | 3 |
> -------
>
> -----------------
> |IND|KEY| VALUE | (T2)
> -----------------
> | 1 | 1 | val_a |
> | 1 | 2 | val_b |
> | 1 | 3 | val_c |
> | 2 | 1 | val_d |
> | 2 | 2 | val_e |
> | 3 | 1 | val_f |
> | 3 | 3 | val_g |
> -----------------
>
> ----------------------------------
> |T1_INDEX|KEY1VAL|KEY2VAL|KEY3VAL| (T3)
> ----------------------------------
> | 1 | val_a | val_b | val_c |
> | 2 | val_d | val_e | |
> | 3 | val_f | | val_g |
> ----------------------------------
>
> Thanks for any suggestions
>
> med vänlig hälsning
> /Dana

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Dana.Reed 2000-08-03 17:24:13 SQL (table transposition)
Previous Message Mark Volpe 2000-08-03 15:33:36 Re: PL/pgSQL