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
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 |