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 <mmonc...@gmail.com> > On Tue, Oct 22, 2013 at 9:43 AM, Rémi Cura <remi.c...@gmail.com> 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 >