我怎样才能找到间隔 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 天的金额?的主要内容,如果未能解决你的问题,请参考以下文章