array_agg с отдельными работами в postgres 9.4, но не в postgres 9.6

У меня есть запрос, который использует array_agg с отличным в качестве аргумента и не принят на Postgres 9.6.

Я создал этот образец, чтобы проиллюстрировать проблему:

create table numbers (id integer primary key, name varchar(10));
insert into numbers values(1,'one');
insert into numbers values(2,'two');

Postgres 9,4

select array_agg(distinct(id)) from numbers;
 array_agg 
-----------
 {1,2}

Postgres 9,6

ERROR:  function array_agg(integer) is not unique
LINE 1: select array_agg(distinct(id)) from numbers;
               ^
HINT:  Could not choose a best candidate function. 
You might need to add explicit type casts.

Что мне нужно изменить, чтобы получить этот результат на postgres 9.6?

Благодарю.

Вот что я получаю, проверяя функции:

nspname | proname | proargtypes 
------------+-----------+--------------------- 
pg_catalog | array_agg | [0:0]={anyarray} 
public | array_agg | [0:0]={anyelement} 
pg_catalog | array_agg | [0:0]={anynonarray

Теперь я нашел проблему благодаря комментарию pozs. Я удалил публичное определение агрегированной функции, и это сработало.

Проблема была только в базе данных, над которой я работал, поскольку я обнаружил, что некоторые люди говорят, что образец работает для них, я создал новую базу данных для запуска примера. И тогда единственным изменением стали определения агрегатных функций.

2 ответа

Теперь я нашел проблему благодаря комментарию pozs. Я удалил публичное определение агрегированной функции, и это сработало.

Проблема была только в базе данных, над которой я работал, поскольку я обнаружил, что некоторые люди говорят, что образец работает для них, я создал новую базу данных для запуска примера. И тогда единственным изменением стали определения агрегатных функций.

Так что я опускаю функцию public | array_agg | [0:0]={любой элемент}, и это сработало.

Большое спасибо.

Он работает точно так же, как это продемонстрировано в dbfiddle на PostgreSQL 9.6.2 на x86_64-pc-linux-gnu, скомпилированной gcc (Debian 4.9.2-10) 4.9.2, 64-bit.

введите описание изображения здесь

Другие вопросы по тегам