SQL滑动窗口聚集(不使用窗口功能)

问题描述:

我期待的,可以在21日的累计数据传回以下列方式基础上的查询: 我的表有以下几列: ACCOUNTID,日期,测量SQL滑动窗口聚集(不使用窗口功能)

对于每个账户,我需要为前21天的总计(衡量)日期。 任何想法如何在没有窗口/分析函数的纯SQL中完成它? (我在一个BI产品里面写的SQL不支持分析函数)

+0

你能提供样品数据和想要的结果吗?从什么回来21天? –

一个效率相当低的方法使用相关的子查询。如果你想为每个条目之前的21天,则:

select t.*, 
     (select sum(t2.measure) 
     from t t2 
     where t2.accountid = t.accountid and 
       t2.date > t.date - interval '21' day 
     ) as sum21 
from t; 

在该日期由功能数据库不同,所以你的特定数据库可能减去21天来的另一种方法。