Re: Array extraction - Mailing list pgsql-general

From andyk
Subject Re: Array extraction
Date
Msg-id 460E5552.6040905@commandprompt.com
Whole thread Raw
In response to Array extraction  (veejar <veejar.net@gmail.com>)
List pgsql-general
    Hi!

    Try this one:

SELECT
    a.ug_id,
    b.ug_users[a.generate_series]
FROM
    (SELECT
        ug_id,
        generate_series(1, array_upper(ug_users, 1))
     FROM
         user_group
    ) AS a,
    user_group AS b
WHERE
    a.ug_id = b.ug_id;


veejar wrote:
> Hi!
>
> I have such table:
>
> user_group
> ---------------------------------
> ug_id -> serial primary key
> ug_users -> int4[]
>
> For example table has such rows:
>  ug_id | ug_users
>
> -------+--------------
>   1    |  { 2,5,6 }
>   2    |  { 3,4,9 }
>
>
> I want to write SQL-query or write user defined function to get such
> result (extract array values):
>  ug_id | ug_users
> -------+--------------
>   1    |    2
>   1    |    5
>
>   1    |    6
>   2    |    3
>   2    |    4
>   2    |    9
>
> Help please to solve this problem.
> --
> Vadim
>


pgsql-general by date:

Previous
From: Csaba Kalman
Date:
Subject: Re: PANIC: unexpected hash relation size
Next
From: William Garrison
Date:
Subject: Arrays instead of join tables