0

我有一个日节点和另一个我想平均每 n 天的节点。我希望每 7 天有一个移动窗口。而且,我想每天都回来。因此,每一行的回报将是当天和前 7 天的平均值。我无法显示代码,因为数据不是我的。

(事物)-[]->(天)

……

RETURN thing.metric as SevenDayAvg, day

4

1 回答 1

0

这样的事情对你有用吗?

MATCH (t1:Thing)-->(d1:Day)
MATCH (t2:Thing)-->(d2:Day)
WHERE 0 <= duration.inDays(d2.date, d1.date).days < 7
WITH d1.date as day, collect(t2.value) as values
RETURN apoc.coll.avg(values) as sevenDayAvg, day

如果您没有安装 apoc 库,这个稍长的版本应该可以工作。

MATCH (t1:Thing)-->(d1:Day)
MATCH (t2:Thing)-->(d2:Day)
WHERE 0 <= duration.inDays(d2.date, d1.date).days < 7
WITH d1.date as day, collect(t2.value) as values
RETURN reduce(s = 0 , v in values | s + v)/size(values) as sevenDayAvg, day
于 2021-11-16T03:11:01.217 回答