Re: function to return rows as columns? - Mailing list pgsql-general

From Linos
Subject Re: function to return rows as columns?
Date
Msg-id 49A7D3A7.9020507@linos.es
Whole thread Raw
In response to Re: function to return rows as columns?  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
Responses Re: function to return rows as columns?
List pgsql-general
A. Kretschmer escribió:
> In response to Linos :
>> Hello,
>>     i have a query that returns a result set like this:
>>
>> item | size | stock
>> 123  | XL   | 10
>> 123  | XXL | 5
>> 123  | XS   | 3
>>
>> and i would like get the results like this:
>>
>> item | XL | XXL | XS
>> 123  | 10  | 5     | 3
>
> Other solution with plain SQL:
>
> test=*# select * from linos ;
>  item | size | stock
> ------+------+-------
>   123 | XL   |    10
>   123 | XXL  |     5
>   123 | XS   |     3
> (3 rows)
>
> test=*# select item, sum(case when size='XL' then stock else 0 end) as
> "XL", sum(case when size='XXL' then stock else 0 end) as "XXL", sum(case
> when size='XS' then stock else 0 end) as "XS" from linos where item=123
> group by item;
>  item | XL | XXL | XS
> ------+----+-----+----
>   123 | 10 |   5 |  3
> (1 row)
>
>
> Andreas

I think this approach have a problem (almost with my data), i have a somewhat
large number of different sizes, about 200 or so (although i have a presented a
limited example i now). Thanks anyway by the alternative way to do it Andreas.

Regards,
Miguel Angel.

pgsql-general by date:

Previous
From: "A. Kretschmer"
Date:
Subject: Re: function to return rows as columns?
Next
From: Gregory Stark
Date:
Subject: Re: funny view/temp table problem with query