Re: How to get array of unique array values across rows?

Поиск
Список
Период
Сортировка
От ChoonSoo Park
Тема Re: How to get array of unique array values across rows?
Дата
Msg-id CACgbiFvdjF-QfTGwW8-wOJGaCLZDMB+A0HecgDXNNnkdcmCs8A@mail.gmail.com
обсуждение исходный текст
Ответ на How to get array of unique array values across rows?  (Ken Tanzer <ken.tanzer@gmail.com>)
Ответы Re: How to get array of unique array values across rows?
Список pgsql-general
Try this one.

select   X.client_id, array_agg(X.color) 
  from   (select distinct client_id, unnest(service_codes) as color 
               from foo) X
group by X.client_id;


On Tue, Mar 5, 2013 at 3:28 PM, Ken Tanzer <ken.tanzer@gmail.com> wrote:
I have a field containing a set of codes in a varchar array, each tied to a person.

 client_id                             | integer                          | 
 service_codes                   | character varying(10)[] |

I'm trying to query this info so that I can get the list (presumably in an array) of all the values in this array, across all the records for a client. So that if a person has two records, one with ORANGE and BLUE, and one with BLUE and GREEN, I could end up with a list of ORANGE, BLUE and GREEN.  

I had hopes for:

SELECT client_id,array_agg(service_codes) FROM foo GROUP BY client_id;

But was rebuffed with "ERROR:  could not find array type for data type character varying[]"

There's probably an easy answer for this, but it's completely escaping me.  Any help appreciated.  Thanks.

Ken

--
AGENCY Software  
A data system that puts you in control
100% Free Software

learn more about AGENCY or
follow the discussion.

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

Предыдущее
От: Ken Tanzer
Дата:
Сообщение: How to get array of unique array values across rows?
Следующее
От: Ken Tanzer
Дата:
Сообщение: Re: How to get array of unique array values across rows?