Wow, this is an excellent discussion - and I must admit, a bit beyond my abilities. Is there a consensus as to the best approach to adopt? Is Elliot's the best? On 10/22/13, Rémi Cura <remi.cura@xxxxxxxxx> wrote: > OK, > just out of pure curiosity, > is it always the case or is it due to this particular aggregate? > > Cheers, > Rémi-C > > > 2013/10/22 Merlin Moncure <mmoncure@xxxxxxxxx> > >> On Tue, Oct 22, 2013 at 9:43 AM, Rémi Cura <remi.cura@xxxxxxxxx> wrote: >> > Thanks again for the precision ! >> > >> > I still don't understand perfectly. We call the aggregate n times, and >> each >> > time we compute the aggregate, using (potentially) n rows, thus >> > becoming >> (at >> > most) O(n*n). >> > >> > With a standard loop, I loop n times, and each times I only need the >> current >> > row plus the previous row which I put in memory, thus O(n). >> >> For posterity, the above is incorrect. Since the aggregate is ordered >> through the window function, it gets executed exactly once per output >> row. It behaves exactly like a loop. You know this because there is >> no array in the aggregate state. >> >> merlin >> > -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general