From: | wstrzalka <wstrzalka(at)gmail(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: ordered by join? ranked aggregate? how to? |
Date: | 2009-09-15 08:12:59 |
Message-ID: | 8e3cb4f4-084d-4983-b83a-6efbf6b09308@33g2000vbe.googlegroups.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On 15 Wrz, 10:10, wstrzalka <wstrza(dot)(dot)(dot)(at)gmail(dot)com> wrote:
> On 15 Wrz, 09:56, andreas(dot)kretsch(dot)(dot)(dot)(at)schollglas(dot)com ("A. Kretschmer")
> wrote:
>
>
>
> > In response to wstrzalka :
>
> > > What I need is to join 2 tables
>
> > > CREATE TABLE master(
> > > id INT4
> > > );
>
> > > CREATE TABLE slave (
> > > master_id INT4,
> > > rank INT4,
> > > value TEXT);
>
> > > What I need is to make the query:
>
> > > SELECT m.id, array_agg(s.value) AS my_problematic_array
> > > FROM master AS m LEFT JOIN slave AS s ON (m.id = s.master_id)
> > > GROUP BY m.id;
>
> > Faster solution (compared to my other email):
>
> > test=# select id, array_agg(value) from (SELECT m.id, s.value FROM
> > master AS m LEFT JOIN slave AS s ON (m.id = s.master_id) order by 1,2)
> > foo group by 1;
> > id | array_agg
> > ----+-----------
> > 1 | {3,5,7}
> > 2 | {NULL}
> > (2 rows)
>
> > Andreas
> > --
> > Andreas Kretschmer
> > Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
>
> > --
> > Sent via pgsql-sql mailing list (pgsql-(dot)(dot)(dot)(at)postgresql(dot)org)
> > To make changes to your subscription:http://www.postgresql.org/mailpref/pgsql-sql
>
> Yes. And No :)
>
> The problem is that in original query the aggregate can be used more
> then once :/
>
> So in fact it's like:
>
> SELECT m.id, array_agg(s1.value), array_agg(s2.value)
> FROM master AS m LEFT JOIN slave AS s1 ON (m.id = s1.master_id AND
> SOME_CONDITION_ON_S1)
> LEFT JOIN slave AS s2 ON (m.id =
> s2.master_id AND SOME_OTHER_CONDITION_ON_S1)
> GROUP BY m.id;
However it still may work as the order by is the same :) Will try ...
From | Date | Subject | |
---|---|---|---|
Next Message | std pik | 2009-09-15 09:45:38 | hardware information |
Previous Message | wstrzalka | 2009-09-15 08:10:50 | Re: ordered by join? ranked aggregate? how to? |