Re: How-To: Aggregate data from multiple rows into a delimited list.

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: How-To: Aggregate data from multiple rows into a delimited list.
Дата
Msg-id 162867790707030203t41d3f35g28f32887eee512aa@mail.gmail.com
обсуждение исходный текст
Ответ на Re: How-To: Aggregate data from multiple rows into a delimited list.  (Dimitri Fontaine <dfontaine@hi-media.com>)
Список pgsql-general
> The query would become
>  SELECT a.id, a.name, array_acc(b.name) as b_names
>  FROM a LEFT JOIN b USING(id)
>  GROUP BY a.id, a.name;
>

All variants are possible. Variant with array_to_string is faster and
doesn't need own aggregate function. And you can easy remove
duplicities.

SELECT a.id, a.name,
      ARRAY_TO_STRING(ARRAY(
        SELECT DISTINCT b.name
        FROM b
        WHERE b.id = a.id
        ORDER BY b.name ASC
      ), ',') AS b_names
    FROM a
    ORDER BY a.id ASC;

regards
Pavel

В списке pgsql-general по дате отправления:

Предыдущее
От: Richard Huxton
Дата:
Сообщение: Re: General search problem - challenge
Следующее
От: Poul Møller Hansen
Дата:
Сообщение: Re: Invalid page header