簡體   English   中英

Cypher - Where + Aggregate + With 問題

[英]Cypher - Issue with Where + Aggregate + With

我正在嘗試執行以下 Cypher 查詢

START b=node:customer_idx(ID = 'ABCD')   
MATCH p = b-[r1:LIKES]->stuff, someone_else_too-[r2:LIKES]->stuff
with b,someone_else_too, count(*) as matchingstuffcount
where matchingstuffcount > 1
//with   b, someone_else_too, matchingstuffcount, CASE WHEN ...that has r1, r2... END as SortIndex
return someone_else_too, SortIndex
order by SortIndex

上面的查詢工作正常,但是當我取消注釋較低的“with”時,我得到了以下錯誤

Unknown identifier `b`.
Unknown identifier `someone_else_too`.
Unknown identifier `matchingstuffcount`.
Unknown identifier `r1`.
Unknown identifier `r2`.

為了解決問題,我在頂部包含 r1 和 r2 - "with b,someone_else_too, count(*) as matchingstuffcount". "with b, r1, r2, someone_else_too, count(*) as matchingstuffcount". 這弄亂了我的count(*) > 1條件,因為 count(*) 沒有正確聚合。

在確保 Case When 也可以執行的同時過濾掉 count(*) > 1 的任何解決方法/建議?

在 neo4j 2.0 下通過console.neo4j.org我能夠得到以下查詢工作。 我試圖模仿你的結構,即WITH / WHERE / WITH / RETURN序列。 (如果我錯過了什么,請告訴我!)

START n=node:node_auto_index(name='Neo') 
MATCH n-[r:KNOWS|LOVES*]->m 
WITH n,COUNT(r) AS cnt,m 
WHERE cnt >1 
WITH n, cnt, m,  CASE WHEN m.name?='Cypher'  THEN 1  ELSE 0 END AS isCypher 
RETURN n AS Neo, cnt, m, isCypher 
ORDER BY cnt

在此處更新或更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM