From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Alban Hertroys <alban(at)magproductions(dot)nl> |
Cc: | Chris Kratz <chris(dot)kratz(at)vistashare(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Ordering of records in group by not possible |
Date: | 2006-04-26 16:10:43 |
Message-ID: | 18214.1146067843@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Alban Hertroys <alban(at)magproductions(dot)nl> writes:
> Ordering the data before aggregating should do the trick though, but
> you'll need to order your records in the subquery. Something like this,
> I think:
> Select a, aggregate(b)
> from (
> select a, b
> from c
> order by a,b
> ) d
> group by a
Right. The key point there is that the subquery is already delivering
outputs that are suitably sorted for grouping by A, and so even if the
planner wants to do it via group rather than hash aggregation, it will
not need to put in another sort step. You can't just "order by B" in
the subquery, or it won't work.
This should work reliably since [ checks CVS... ] PG 7.4. Just to be
sure, you might try looking at the query plan with "set enable_hashagg =
off" to verify that the planner recognizes it doesn't need a second sort
step.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-04-26 16:28:44 | Re: Problem with complex outer join expression |
Previous Message | Alban Hertroys | 2006-04-26 16:05:45 | Re: evaluating equation stored in a string |