From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
Cc: | Guyren Howe <guyren(at)gmail(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Are multiple array_aggs going to be in the same order? |
Date: | 2017-04-10 17:01:29 |
Message-ID: | 15950.1491843689@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Merlin Moncure <mmoncure(at)gmail(dot)com> writes:
> On Sun, Apr 9, 2017 at 4:27 PM, Guyren Howe <guyren(at)gmail(dot)com> wrote:
>> If I do a SELECT with a GROUP_BY and multiple ARRAY_AGGs, will the ARRAY_AGGs be guaranteed to have entries in the same (ie corresponding) order?
>>
>> eg
>>
>> SELECT
>> u.name,
>> ARRAY_AGG(o.order_date) AS order_dates,
>> ARRAY_AGG(o.order_total) AS order_totals
>> FROM
>> user u JOIN
>> orders o USING (user_id)
>> GROUP BY
>> u.user_id
> It is unsafe to rely on aggregation order unless specified -- you can
> add ORDER BY to the aggregation clause.
You definitely can't assume anything about the order in which the FROM
clause will deliver rows, but I think that's not quite what the question
was. If I read it right, the OP wants to be sure that the two aggregate
functions will see the data in the *same* unspecified order. I think
that's a pretty safe assumption. The server would have to go way
out of its way to do differently, and it doesn't.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Paul Jungwirth | 2017-04-10 17:10:11 | Re: Are multiple array_aggs going to be in the same order? |
Previous Message | Merlin Moncure | 2017-04-10 16:33:28 | Re: Are multiple array_aggs going to be in the same order? |