On 08/14/2017 08:20 PM, Robert Klemme wrote:
[...]
MAX(x) OVER (PARTITION by ...
ORDER BY ...
RANGE BETWEEN CURRENT ROW AND 3 PRECEDING)
If I am not mistaken this requires that data is rolled up to days
already. Could be achieved with a WITH clause though.
You can do this in the window:
MAX(x) OVER (PARTITION by ...
ORDER BY date(...)
RANGE BETWEEN CURRENT ROW AND 3 PRECEDING)
Some DBMS does only support range over numbers, a trick is to map the
date to a number with for example a JULIAN_DAY function:
MAX(x) OVER (PARTITION by ...
ORDER BY JULIAN_DAY(...)
RANGE BETWEEN CURRENT ROW AND 3 PRECEDING)
The nice thing is this works easier with the three work days as you
would just have to filter out weekends. That would still miss public holidays which would require a bit more.
I agree, a calendar table is often very usefull
The groups I monitor on usenet have zero to none activity. I suggest you
post your question on http://stackoverflow.com
Some old fashioned guys are still around. :-)
:-)
/Lennart
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)