On 23 April 2011 21:34, Robert Haas <robertmh...@gmail.com> wrote: > On Apr 18, 2011, at 1:13 PM, Uwe Bartels <uwe.bart...@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. > yes. something like a first match without bothering about alle the rows coming after - especially without sorting everything for throwing them away finally. I'll definitely check this out.
> > 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. :-( > Yes, abut I'm talking about big resultset on machines with already 140GB RAM. If I start joining these afterwards this gets too expensive. I tried it already. But thanks anyway. Often small hint helps you a lot. Best Regards and happy Easter. Uwe > > ...Robert