On Thu, 2007-09-06 at 20:19 -0700, Joe Conway wrote:
> Ow Mun Heng wrote:
> > => select code, round(avg(case when subset = '0' then value else null
> > end),0) as v0,
> > round(avg(case when subset = '1' then value else null end),0) as v1,
> > round(avg(case when subset = '2' then value else null end),0) as v2,
> > round(avg(case when subset = '3' then value else null end),0) as v3,
> > round(avg(case when subset = '4' then value else null end),0) as v4
> > from foo
> > group by code;
> > code | v0 | v1 | v2 | v3 | v4
> > ------+----+----+----+----+----
> > A | 98 | 20 | 98 | 98 | 98
>
> An alternative way to get the output below, would be to feed your
> aggregate query above to the crosstab() function in contrib/tablefunc.
I just looked at it and seems like the
...
row_name and value must be of type text
...