pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Robert Haas <robertmhaas@gmail.com>
To: Uwe Bartels <uwe.bartels@gmail.com>
Cc: pgsql-performance@postgresql.org <pgsql-performance@postgresql.org>
Subject: Re: big distinct clause vs. group by
Date: Sat, 23 Apr 2011 15:34:11 -0400
Message-ID: <4B594466-0554-4AF8-A8BC-8FDA9C393DF9@gmail.com> (raw)
In-Reply-To: <BANLkTimPgtYKLyEE8K0NKoE=DAvgm7p8+A@mail.gmail.com>
References: <AANLkTi=SwWco0mJcU549tzMXJ0kmBwCsNHabH8OUjg1M@mail.gmail.com>
	<BANLkTimuvQr3Lvyh6T6fbKDs1v34Bi5=aQ@mail.gmail.com>
	<BANLkTimPgtYKLyEE8K0NKoE=DAvgm7p8+A@mail.gmail.com>

On Apr 18, 2011, at 1:13 PM, Uwe Bartels <uwe.bartels@gmail.com> wrote:
> Hi Robert,
> 
> thanks for your answer.
> the aggregate function I was talking about is the function I need to use for the non-group by columns like min() in my example.
> There are of course several function to choose from, and I wanted to know which causes as less as possible resources.

Oh, I see. min() is probably as good as anything. You could also create a custom aggregate that just always returns its first input. I've occasionally wished we had such a thing as a built-in.

Another option is to try to rewrite the query with a subselect so that you do the aggregation first and then add the extra columns by joining against the output of the aggregate. If this can be done without joining the same table twice, it's often much faster, but it isn't always possible.  :-(

...Robert


view thread (11+ messages)  latest in thread

Message-ID: <4B594466-0554-4AF8-A8BC-8FDA9C393DF9@gmail.com>
Permalink:  ../4B594466-0554-4AF8-A8BC-8FDA9C393DF9@gmail.com/
Also on:    postgresql.org/message-id/4B594466-0554-4AF8-A8BC-8FDA9C393DF9@gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: robertmhaas@gmail.com, uwe.bartels@gmail.com
  Subject: Re: big distinct clause vs. group by
  In-Reply-To: <4B594466-0554-4AF8-A8BC-8FDA9C393DF9@gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox