Simon Riggs <simon@2ndQuadrant.com> writes:
> On 5 December 2012 23:37, David Rowley <dgrowleyml@gmail.com> wrote:
>> Though this plan might not be quite as optimal as it could be as it performs
>> the grouping after the join.
> PostgreSQL always calculates aggregation as the last step.
> It's a well known optimisation to push-down GROUP BY clauses to the
> lowest level, but we don't do that, yet.
> You're right that it can make a massive difference to many queries.
In the case being presented here, it's not apparent to me that there's
any advantage to be had at all. You still need to aggregate over the
rows joining to each uniquely-keyed row. So how exactly are you going
to "push down the GROUP BY", and where does the savings come from?
regards, tom lane