我正在尝试创建数据库查询,它将从一个表中选择行,从这些行创建句点(使用滞后窗口函数),并使用来自不同表的行加入查询,其中它对每行一列的值求和在第一个表中 .
表A:id,created_at,object_id
表B:id,end_time,value,object_id
查询产量的行应包含以下列:
lag(tablea.created_at)over(tablea.object_id,tablea.created_at),
tablea.created_at,
tablea.object_id
sum(tableb.value),它将tableb.value与匹配期间相加
我尝试创建查询,我将窗口函数放入WHERE子句只是为了得到一个错误 . 我也尝试将句点放入join on子句,但这也引发了错误 .
如果不可能的话,没问题 . 我只是想知道它是否可能,在这种情况下它是如何可能的 . 如果不可能,那么我将尝试提出替代方案 .
Edit2:我试过的SQL是这样的:
SELECT lag(a.created_at,a.created_at,a.object_id,sum(b.value)from tablea a left join tableb b on(something)order by a.object_id,a.created_at
但显然这不起作用,因为我无法在ON子句中使用窗口函数 . 这就是我被卡住的地方