gpt4 book ai didi

neo4j - SET 与 cypher 中的 CASE 语句结合使用

转载 作者:行者123 更新时间:2023-12-02 13:40:23 27 4
gpt4 key购买 nike

我试图将两个不同的关系属性设置为一个计数,并使用取决于另一个关系属性的值的案例构造。 http://console.neo4j.org/?id=rt1ld5 有一个控制台

cnt 列包含 r.value 出现的次数。控制台中初始查询的前两行表明术语“Car”链接到 1 个被认为相关的文档以及两个被认为不相关的文档。

我想用两个属性在(用户)和(术语)之间的 [:INTEREST] 关系上设置一个属性,指示兴趣链接到被认为相关或不相关的文档的次数。所以对于 (John)-[r:INTEREST]->(Car) 我想要 r.poscnt=1 和 r.negcnt=2

我正在与 CASE 结构作斗争。我尝试了各种方法,这是我最接近的。

MATCH (u:user)-[int:INTEREST]->(t:term)<-[:ISABOUT]-(d:doc)<-    [r:RELEVANCE]-(u)
WITH int, t.name, r.value, count(*) AS cnt
CASE
WHEN r.value=1 THEN SET int.poscnt=cnt
WHEN r.value=-1 THEN SET int.negcnt=cnt
END

但它返回一个错误

Error: Invalid input 'A': expected 'r/R' (line 3, column 2)
"CASE"
^

最佳答案

这样就成功了!另请参阅控制台 http://console.neo4j.org/?id=rq2i7j

MATCH (u:user)-[int:INTEREST]->(t:term)<-[:ISABOUT]-(d:doc)<-[r:RELEVANCE]-(u)
WITH int, t,
SUM(CASE WHEN r.value= 1 THEN 1 ELSE 0 END ) AS poscnt,
SUM(CASE WHEN r.value= -1 THEN 1 ELSE 0 END ) AS negcnt
SET int.pos=poscnt,int.neg=negcnt
RETURN t.name,int.pos,int.neg

关于neo4j - SET 与 cypher 中的 CASE 语句结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22459893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com