Populate arrays from multiple rows

Поиск
Список
Период
Сортировка
От
Тема Populate arrays from multiple rows
Дата
Msg-id 8F8517020108854FBA3C766A8711815E22DBD9@dit00smapo01.doh.ad.state.fl.us
обсуждение исходный текст
Ответы Re: Populate arrays from multiple rows  (Merlin Moncure <mmoncure@gmail.com>)
Список pgsql-general

Good afternoon:

I would like to insert some (1 or more) values from multiple rows of one table into an array in another table. Here's the scenario:

--table to house data provided by a third party
CREATE TABLE raw_foo (
        rf_id serial PRIMARY KEY,
        cde character varying(4),
        nbr integer,
        aaa character varying(60),
        bbb character(10),
        ccc character varying(20)
        );

--table raw_foo populated by copying from a text file
--columns cde||nbr identify a person while columns aaa||bbb||ccc describe an attribute of a person
--since each person can have one or more attributes, the cde||nbr identifier is not distinct
--need data in raw_foo flattened so that there is only one record per person

--second table in which aaa, bbb, and ccc are array fields     
CREATE TABLE foo_arrays (
        cde character varying(4),
        nbr integer,
        aaa text[],
        bbb text[],
        ccc text[],
        PRIMARY KEY (cde, nbr)
        );

--insertion of all distinct cde||nbr combinations from raw_foo 
INSERT INTO foo_arrays
        (cde, nbr)
        (SELECT cde, nbr
                FROM raw_foo
                GROUP BY cde, nbr
                HAVING COUNT(*) = 1)
        UNION
        (SELECT cde, nbr
                FROM raw_foo
                GROUP BY cde, nbr
                HAVING COUNT(*) > 1);

--hope to update foo_arrays.aaa by selecting every instance of raw_foo.aaa where raw_foo.cde||raw_foo.nbr matches the distinct value of foo_arrays.cde||foo_arrays.nbr (repeating the process for foo_arrays.bbb and foo_arrays.ccc)           

UPDATE foo_arrays
        SET aaa = ???
       
This is where I'm stumped.
Am I on the right path?
Thanks in advance.

Cheers,
Rob



For up-to-date information about H1N1 Swine Flu visit http://www.myflusafety.com or call 877 352 3581

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

Предыдущее
От: Scott Marlowe
Дата:
Сообщение: Re: How many threads/cores Postgres can utilise?
Следующее
От: Jorge Arevalo
Дата:
Сообщение: Re: Writing SRF