Search Postgresql Archives

Re: range intervals in window function frames

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Daniel Popowich <danielpopowich@xxxxxxxxx> writes:
> Close.  Your where clause needed to have (ts<=t1.ts).  It can also be
> simplified to this:

> select t1.ts, t1.value, (select avg(t2.value) 
>                                    from sample t2 
>                                    where (t1.ts - t2.ts) <= interval '5 min'
>                                           and t2.ts <= t1.ts)
>           from sample t1 order by t1.ts;

> HOWEVER, the performance is horrible compared to using the
> avg_over_interval() function!

The reason for that is the WHERE clause got rewritten into a form that
can't be used efficiently with the index on t2.  Phrase it the same way
as in the function, ie

                                   where (t1.ts - interval '5 min') <= t2.ts
                                          and t2.ts <= t1.ts

and you'll probably get similar results.  Of course, since this isn't
anything except inlining the function into the query, it's probably not
all that exciting to you.

> Can anyone answer when range intervals will be implemented for window
> functions, as in the quoted select at the top of this message?

Nope.  There was a patch submitted, it was rejected on a couple of
grounds, and I don't know if anyone is actively working on the problem
or not.

			regards, tom lane

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux