我怎样才能找到间隔 100 天的金额?

Posted

技术标签:

【中文标题】我怎样才能找到间隔 100 天的金额?【英文标题】:How can I find the amount for an interval of 100 days? 【发布时间】:2018-09-25 12:16:07 【问题描述】:

如何找到 100 天间隔的金额? 我有这个选项:

SELECT SUM(AMN) 
OVER (PARTITION BY ID 
     ORDER BY DATE RANGE BETWEEN INTERVAL '100' DAY(3) PRECEDING 
     AND CURRENT ROW) S1
FROM ddd

【问题讨论】:

你得到的选项有什么问题? 如果我没记错的话它可以正常工作,但我想知道是否还有其他方法 【参考方案1】:

你做得对。另一种方式是相关子查询,如下所示。但是窗口函数正是为此目的而设计的,您应该使用它们而不是子查询。它们的速度要快得多。

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

【讨论】:

以上是关于我怎样才能找到间隔 100 天的金额?的主要内容,如果未能解决你的问题,请参考以下文章

分组日期之间的间隔

5天的Highchart刻度间隔

以 30 分钟的时间间隔计算一天的用户数 oracle

怎样用JAVA实现在指定的时间间隔内重复做一个操作

将每隔 30 分钟收集的数据舍入为设置的 30 分钟间隔

有没有办法从 min(date) 开始按 30 天的间隔对时间戳数据进行分组并将它们添加为列