如何找到间隔 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 函数正是为此目的而设计的,您应该使用它们而不是子查询。他们要快得多。

SQLFiddle demo

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