如何找到间隔 100 天的金额?
How can I find the amount for an interval of 100 days?
如何找到间隔 100 天的金额?
我得到了这个选项:
SELECT SUM(AMN)
OVER (PARTITION BY ID
ORDER BY DATE RANGE BETWEEN INTERVAL '100' DAY(3) PRECEDING
AND CURRENT ROW) S1
FROM ddd
你做对了。另一种方式是相关子查询,如下所示。但是 window 函数正是为此目的而设计的,您应该使用它们而不是子查询。他们要快得多。
select id, date_, amn,
sum(amn) over(partition by id order by date_
range between interval '100' day(3) preceding
and current row) s1,
(select sum(amn)
from ddd d2
where ddd.id = d2.id
and date_ between ddd.date_ - interval '100' day(3)
and ddd.date_) s2
from ddd
如何找到间隔 100 天的金额? 我得到了这个选项:
SELECT SUM(AMN)
OVER (PARTITION BY ID
ORDER BY DATE RANGE BETWEEN INTERVAL '100' DAY(3) PRECEDING
AND CURRENT ROW) S1
FROM ddd
你做对了。另一种方式是相关子查询,如下所示。但是 window 函数正是为此目的而设计的,您应该使用它们而不是子查询。他们要快得多。
select id, date_, amn,
sum(amn) over(partition by id order by date_
range between interval '100' day(3) preceding
and current row) s1,
(select sum(amn)
from ddd d2
where ddd.id = d2.id
and date_ between ddd.date_ - interval '100' day(3)
and ddd.date_) s2
from ddd