我不断收到此错误,但是类型与我用pg_typeof检查列的匹配。他们返回了文字和bigint。
build
这是测试表的定义
ERROR: return and sql tuple descriptions are incompatible
SQL state: 42601
这是插入物
create table reader_event
(
reader_event_id serial,
reader_name text,
event_type varchar(25),
event_date timestamp,
metric_key text,
metric_value bigint
)
返回错误的查询。我搜索google和StackOverflow并感到困惑。
insert into reader_event(reader_name, event_type, event_date, metric_key, metric_value)
values('t', 'insert', now(), 'followers', 10),
('t', 'upate', now()+ interval '1' day, 'followers', 20),
-- Add New Metric
('t', 'insert', now(), 'subscribers', 10000),
('t', 'update', now()+ interval '2' day, 'followers', 9999),
('t', 'update', now()+ interval '3' day, 'subscribers', 17),
-- Add new metric
('t', 'insert', now(), 'reads', 9999);
insert into reader_event(reader_name, event_type, event_date, metric_key, metric_value)
values('a', 'insert', now(), 'followers', 10),
('a', 'upate', now(), 'followers', 20),
('a', 'upate', now()+ interval '1' day, 'followers', 230);
关于我为什么会收到错误的任何想法?
谢谢。
答案 0 :(得分:0)
您可能不了解crosstab
的要点。
(reader_name text,metric_key text,metric_value bigint)
是交叉表的输入。是通过以下方式定义的吗?
您需要指定输出,具体情况如下:
(reader_name text,metric_value1 bigint,metric_value2 bigint,metric_value3 bigint)
除非添加一个WHERE
子句以确保内部查询返回的值不超过N个,否则随着数据库的增长,将需要添加更多的值。