假设我有两个表作为两个单独的Cypher查询的结果:
第一张表:
login
score
abc
10
def
20
第二张表:
login
score
abc
50
ghi
100
我需要一个表格,其中两个表格中存在的登录分数相加,而对于其他登录,它们会列出可用的单个分数。
login
score
abc
60
def
20
ghi
100
您能帮助Cypher查询吗?如果我想应用自定义聚合函数而不是简单求和,该怎么办?
答案 0 :(得分:0)
如果您拥有大型数据集,这将不会超级高效,但以下内容将起到作用:
MATCH (c:Choice)
WITH collect(c.login) AS cset
MATCH (t:Thing)
WHERE NOT t.login IN cset
RETURN t.login AS login, t.score AS score
UNION ALL
MATCH (t:Thing)
WITH collect(t.login) AS tset
MATCH (c:Choice)
WHERE NOT c.login IN tset
RETURN c.login AS login, c.score AS score
UNION ALL
MATCH (c:Choice),(t:Thing {login: c.login})
RETURN c.login AS login, c.score + t.score AS score;
可能有更有效的方法来做到这一点,但
希望这有帮助, 汤姆