string_agg Функция не соответствует указанному имени

У меня есть реляционная база данных и вы хотите использовать string_agg() поскольку она мне подходит.

Мне нужно :

product_id | quiz_id
-----------+----------
         1 | 1,6
         2 | 2,7
         3 | 3,8
         4 | 4

Вот моя база данных.

    select quiz_id , product_id, lastmodified from dugong.quiz;
 quiz_id | product_id |         lastmodified          
---------+------------+-------------------------------
       1 |          1 | 2015-11-11 14:46:55.619162+07
       2 |          2 | 2015-11-11 14:46:55.619162+07
       3 |          3 | 2015-11-11 14:46:55.619162+07
       4 |          4 | 2015-11-11 14:46:55.619162+07
       5 |          5 | 2015-11-11 14:46:55.619162+07
       6 |          1 | 2015-11-11 14:46:55.619162+07
       7 |          2 | 2015-11-11 14:46:55.619162+07
       8 |          3 | 2015-11-11 14:46:55.619162+07

Моя попытка:
См. Документ. Как конкатенировать строки поля строки в запросе PostgreSQL? http://www.postgresql.org/docs/current/static/sql-expressions.html#SYNTAX-AGGREGATES

select product_id , string_agg(quiz_id, ',' order by lastmodified) from dugong.quiz;
ERROR:  function string_agg(integer, unknown) does not exist
LINE 1: select product_id , string_agg(quiz_id, ',' order by lastmod...
                            ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


Версия для Postgres:
PostgresApp 9.4.4.1

Обновить :
@code-monk Это еще ошибка.

select product_id , string_agg(quiz_id::int, ',' order by lastmodified) from dugong.quiz;
ERROR:  function string_agg(integer, unknown) does not exist
LINE 1: select product_id , string_agg(quiz_id::int, ',' order by la...
                            ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Вопрос:
Что не так с моим запросом?

Ответы

Ответ 1

Попробуй это:

select product_id , string_agg(quiz_id::character varying, ',' order by lastmodified) 
from quiz group by product_id;

Функция String_agg работает только со значениями String. Вы получаете ошибку, потому что quiz_id является целым числом.

Я преобразовал его в character varying и добавленную группу для группировки идентификатора продукта данных.

Пример скрипта SQL: http://sqlfiddle.com/#!15/9dafe/1