O PostgreSQL diz que “as descrições de retorno e tupla sql são incompatíveis”

Eu tenho os seguintes dados:

ID  CLASS   VALUE
1   NHB    700905.7243
1   HBW    164216.1311
1   HBO    700905.7243
2   NHB    146023.3792
2   HBW    89543.2972
2   HBO    82152.072
3   NHB    1409818.328
3   HBW    220430.7922
3   HBO    323512.9391
4   NHB    48711.3814
4   HBW    163385.1575
4   HBO    363352.3441

Que eu quero reorganizar como:

ID     HBO             HBW              NHB
1   700905.7243    164216.1311      700905.7243
2   82152.072      89543.2972       146023.3792
3   323512.9391    220430.7922      1409818.328
4   363352.3441    163385.1575      48711.3814

Observe que os valores nas colunas HBW, HBO e NHB são totais (soma).

Aqui está o script que estou usando para criar a saída:

-- CREATE EXTENSION tablefunc;

SELECT *
FROM  CROSSTAB
(
    'SELECT _tlfd.id,   
    _tlfd."class",
    _tlfd."value"
    FROM public._tlfd
    WHERE _tlfd."class" = ''HBW'' or _tlfd."class" = ''HBO'' or _tlfd."class" = ''NHB'' 
    ORDER BY 1,2'
) 
    AS
(
    "class" int, 
    "HBW" text,
    "HBO" text,
    "NHB" text,
    --"Purpose" varchar, 
    "value" double precision
);

Quando executo o script, recebo este erro:,

ERROR:  return and sql tuple descriptions are incompatible. 

Não sei ao certo o que isso significa e como corrigir o erro. Alguém pode me informar:

O que estou fazendo de errado no script?Meu script produzirá a saída desejada?

questionAnswers(1)

yourAnswerToTheQuestion