Я пытался найти решение моей проблемы с Cypher .. Я пытаюсь суммировать данные отношения по всему пути.Cypher (Neo4j), как суммировать данное свойство по полному пути
Например: 1 -> 2 -> 3 -> 4 Я хочу, чтобы вычислить для узла 1 сумма Сумма собственности для узлов 1,2 3 и 4. (В этом случае 3 и 4 - обе цели узла 2, которые мне не удастся представить здесь)
Мое понимание - мне нужно использовать collect() и уменьшить, но я до сих пор не получаю правильный ответ. У меня есть следующие:
MATCH (n)-[p]->(m)
WITH m,n, collect(m) AS amounts
RETURN n.ID as Source,m.ID as Target,n.Amount,
REDUCE(total = 0, tot IN amounts | total + tot.Amount) AS totalEUR
ORDER BY total DESC
я получаю ошибку синтаксиса, но я уверен, что даже без ошибок синтаксиса, что я буду суммирующий только прямые отношения ...
ли вы, ребята, знаете, если я на правильном пути?
Приветствия Max
Привет, Франк и спасибо за ответ! Я не могу получить сумму в выводе, все они отмечены как null. Мне интересно, может ли я иметь проблему с типом данных? – brmaxime
Начните с возврата путей (или первых, по крайней мере, с помощью 'LIMIT') без части' reduce', чтобы увидеть/отладить то, что вы действительно соответствуете. Как вы его представили, запрос очень важен, я предположил, что у вас на самом деле есть дополнительные ярлыки и ограничения, которые здесь не показаны. –