繁体   English   中英

Cypher 查询:根据其他属性关系的聚合设置关系上的属性

[英]Cypher Query: Set Property on relationship based off the aggregate of other Property Relationship

仍然让我的脚被网络弄湿。

我有以下情况。 每个BM_RU关系都有一个FinCYTD值。 nru有多个BM_RU关系。 我正在尝试添加或设置一个bm属性,该属性是这些关系上FinCYTD值的总和。

match (n:BrickMrtr)-[b:BM_RU]->(ru:RU)<-[bm:BM_RU_F]-(n)
where n.Id = '1000829'
with n.Id as bm, sum(toInteger(b.FinCYTD)) as sum_f, ru.RuName as nm, bm.Amt as bm_amt
set bm_amt = sum_f

我认为上述方法可行,但出现以下错误:

Type mismatch: expected Map, Node or Relationship but was Integer (line 5, column 14 (offset: 239))
"set bm_amt = sum_f"
              ^

你能试试这个吗?

match (n:BrickMrtr)-[b:BM_RU]->(ru:RU)<-[bm:BM_RU_F]-(n)
where n.Id = '1000829'
with n, sum(toInteger(b.FinCYTD)) as sum_f
set bm.amt = sum_f

这将做你可能想要的:

MATCH (n:BrickMrtr)-[b:BM_RU]->(ru:RU)<-[bm:BM_RU_F]-(n)
WHERE n.Id = '1000829'
WITH n, ru, bm, SUM(toInteger(b.FinCYTD)) as sum_f
SET bm.Amt = sum_f

您必须为属性分配一个值( SET bm.Amt =... )。 您试图将值分配给另一个变量( SET bm_amt =... )。

此外,此查询使用nrubm作为聚合 function SUM的分组键,因此每个总和都是针对不同的n / ru / bm组合。 (我假设每个ru只有一个相关的bm 。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM