Ваш запрос имеет множество особенностей. Следующий синтаксис был бы более правильным:
create table consolidado as
select data_req, count(servico) as qtdeServico, count(metodo) as qtdeMetodo,
consumerid, metodo, status_metodo, servico,
sum(tempo_req) as sum_tempo_req
from requisicoes r
where r.data_req > (select max(c.data_req) from consolidado c)
group by data_req, consumerid, metodo, status_metodo, servico;
Это исправляет следующие ошибки:
- Postgres рекомендует
CREATE TABLE AS
свыше SELECT INTO
(см. здесь ).
- При создании таблицы должны быть названы все столбцы.
- Вам нужны скобки вокруг подзапроса.
Однако запрос не имеет смысла. Он создает таблицу с именем consolidado
, а также читает из таблицы. Это логически хлопотно. Кроме того, qtMetodo
и qtdeServico
обычно имеют одинаковые значения - они находятся в столбцах GROUP BY
, означая, что они разделены группами.