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