crosstab - Mailing list pgsql-sql
From | Theo Galanakis |
---|---|
Subject | crosstab |
Date | |
Msg-id | D1444817B78AB546BF2896C2B70E7F04371F22@ganesh.au.lpint.net Whole thread Raw |
Responses |
Re: crosstab
|
List | pgsql-sql |
<p><font size="2">Hi I have looked into the tablefunc / crosstab contrib for postgres and it appears like it can't performwhat I need.</font><p><font size="2">The crosstab function converts this : </font><p> <font size="2">row_name cat value</font><br /><font size="2"> ----------+-------+-------</font><br /><font size="2"> row1 cat1 val1</font><br /><font size="2"> row1 cat2 val2</font><br /><fontsize="2"> row1 cat3 val3</font><br /><font size="2"> row1 cat4 val4</font><br/><font size="2"> row2 cat1 val5</font><br /><font size="2"> row2 cat2 val6</font><br /><font size="2"> row2 cat3 val7</font><br /><font size="2"> row2 cat4 val8</font><p><font size="2">To this : </font><p> <font size="2">row_name category_1 category_2</font><br /><font size="2"> ---------+------------+------------</font><br /><font size="2"> row1 val1 val2</font><br /><font size="2"> row2 val5 val6</font><p><fontsize="2">Is it possible to do the opposite and go from a column(denormalized) structure to a row(normalized)structure.</font><p><font size="2">I have a table that is similarly stuctured like so:</font><p><font size="2">Melbourne_figures Sydney_figures Adelaide_figures etc...</font><br /> <font size="2">10 20 22</font><br /> <font size="2">10 22 29</font><br /> <font size="2">...</font><br /><p><font size="2">However I wish to convertlike so :</font><p><font size="2">Melbourne 20</font><br /><font size="2">Sydney 42</font><br /><font size="2">Adelaide 51</font><p><font size="2">I have tried using unions or subselects however the table is quite largeand it takes far too long to run. The most efficient way would be to create a stored proc that uses a cursor to loopthrough the table transforming the data into the new table structure. However I would appreciate your feeback beforewriting this procedure?</font><p><font size="2">Theo</font><table><tr><td bgcolor="#ffffff"><font color="#000000">______________________________________________________________________<br/> This email, including attachments,is intended only for the addressee<br /> and may be confidential, privileged and subject to copyright. If you<br/> have received this email in error, please advise the sender and delete<br /> it. If you are not the intended recipientof this email, you must not<br /> use, copy or disclose its content to anyone. You must not copy or <br /> communicateto others content that is confidential or subject to <br /> copyright, unless you have the consent of the contentowner.<br /></font></td></tr></table>