我有單獨的暗號查詢如下:組合兩個Cypher支架語句的輸出與聚合
Q1: START m=node(30) MATCH (m)-[d:define]->(n) where d.start=4 RETURN n.name,COUNT(d) as count
Q2: START m=node(30) MATCH (m)-[d:define]->(n) where d.start=5 RETURN n.name,COUNT(d) as count
其返回以下樣品的結果:
從Q1:
a | 2
b | 1
c | 4
d | 3
從Q2 :
a | 1
b | 1
c | 4
e | 2
我可以離線處理結果並生成組合計數,但是可以組合上面的兩個密碼查詢,以便我可以從d.start 4和5中獲得以下合併計數?
a | 2 | 1
b | 1 | 1
c | 4 | 4
d | 3 | 0
e | 0 | 2
我到目前爲止:我該如何繼續名稱和計數(d)到下一個階段?
START m=node(30)
MATCH (m)-[d:define]->(n)
where d.start=4
WITH m, COLLECT (n.name, COUNT(d)) as from1
MATCH (m)-[d:define]->(n)
where d.start=5
WITH m, COLLECT (n.name, COUNT(d)) as from2
工會對我不起作用,因爲我不想將結果合併在一起。我需要將來自d.start = 4和5的計數分開,導致更像交叉點。
你的問題似乎有幾個錯別字。例如,Q1和Q2定義「A」,但從不使用它。你最後的查詢計數'c',這在任何地方都沒有定義。你能否至少糾正這些問題,並提供樣本數據,以顯示你顯示的結果? (另外,在Cypher的最新版本中,你不能再像你使用的那樣使用'START',但這相對容易修復)。 – cybersam
你的解決方案並不遙遠。您不必使用collect,只需在第一個'WITH'子句中使用'COUNT(d1)作爲from1'並使用'RETURN m,from1,...'而不是第二個'WITH'。 –
@cybersam對錯別字感到抱歉,修正了這些錯誤。因此我開始使用Cypher的舊版本。 – kami