crosstab doesn't work - Mailing list pgsql-general

From Vittorio
Subject crosstab doesn't work
Date
Msg-id 5828817.1132927746885.JavaMail.root@pswm19.cp.tin.it
Whole thread Raw
Responses Re: crosstab doesn't work  (Martijn van Oosterhout <kleptog@svana.org>)
List pgsql-general
Dear all,

I installed postgresql 8.04 on a pentium box with freebsd
5.4

# psql --version
psql (PostgreSQL) 8.0.4


In the db switch I have
the following ct1 table

switch=# select * from ct1 order by 1,2;
 id |
rowclass | rowid | attribute | value
----+----------+-------+-----------
+-------
  1 | group1   | test1 | att1      |     8
  2 | group1   |
test1 | att2      |    15
  3 | group1   | test1 | att3      |    -1

4 | group1   | test1 | att4      |    12
  5 | group1   | test2 |
att1      |    17
  6 | group1   | test2 | att2      |   456
  7 |
group1   | test2 | att3      |     2
  8 | group1   | test2 | att4
|   -12
  9 | group1   | test1 | att1      |    10
 10 | group1   |
test2 | att2      |  -420
(10 righe)

crosstable seems to work (even
though with wierd, wrong results for which I blame the repetition of
some records and values) :

select * from crosstab('select rowid,
attribute, value from ct1 where rowclass = ''group1'' order by 1,2;',
2) as c(rowid text, att1 integer, att2 integer);
 rowid | att1 | att2
-------+------+------
 test1 |    8 |   10
 test2 |   17 | -420
(2
righe)

If I aggregate

switch=# select rowid,attribute, sum(value) as
val from ct1 group by rowid, attribute order by 1,2;
 rowid | attribute
| val
-------+-----------+-----
 test1 | att1      |  18
 test1 |
att2      |  15
 test1 | att3      |  -1
 test1 | att4      |  12

test2 | att1      |  17
 test2 | att2      |  36
 test2 | att3      |
2
 test2 | att4      | -12
(8 righe)

crosstab doesn't seem to work
anymore putting the above select into crosstab

switch=# select * from
crosstab('select rowid,attribute, sum(value) as val from ct1 group by
rowid, attribute order by 1,2;', 2) as c(rowid text, att1 integer, att2
integer);
ERROR:  query-specified return row and actual function return
row do not match

Please help I'm in badly need of the crosstab
function.

Ciao
Vittorio


pgsql-general by date:

Previous
From: "Florian G. Pflug"
Date:
Subject: Strange VACUUM behaviour
Next
From: John McCawley
Date:
Subject: Re: tool for DB design