Суммирование и глубокие отношения - PullRequest
1 голос
/ 17 июня 2020

Я использую neo4j 3.5 Community Edition и пытаюсь суммировать и получать переходы от указанного c узла. Я бегу, чтобы суммировать (его работа):

MATCH (p:Person{id:123})-[r]->(m)
RETURN p,count(distinct(r.idSale)) as qtd,sum(r.value) as value,type(r) as type,r.seg as segment,m

Как я получаю прыжки при суммировании ?? Я пробую что-то вроде этого (не работает):

MATCH (p:Person{id:123})-[r]->(m)-[r2*2]->(m2)
RETURN p,count(distinct(r.idSale)) as qtd,sum(r.value) as value,type(r),m,count(distinct(r2.idSale)) as qtd2,sum(r2.value) as t

ошибка: Несоответствие типа: ожидается Any, Map, Node, Relationship, Point, Duration, Date, Time, LocalTime, LocalDateTime или DateTime, но был List (строка 1, столбец 149 (смещение: 148))

Мой график выглядит так: enter image description here Я пытаюсь: enter image description here

1 Ответ

0 голосов
/ 17 июня 2020

Поскольку [r2*2] определяет отношение переменной длины шаблон, r2 - это список отношений.

Вот один из способов получить то, что он кажется вы хотите:

MATCH (p:Person{id:123})-[r]->(m), path=(m)-[*2]->(m2)
RETURN p,count(distinct(r.idSale)) as qtd,sum(r.value) as value,type(r),m,
  SIZE(apoc.coll.toSet([r2 IN RELATIONSHIPS(path) | r2.idSale])) AS qtd2,
  REDUCE(s = 0, r2 IN RELATIONSHIPS(path) | s + r2.value) AS total2,
  [r2 IN RELATIONSHIPS(path) | TYPE(r2)] AS types2,
  m2

В этом запросе используется функция APO C apo c .coll.toSet для получения отдельного списка. Кроме того, он возвращает список типов отношений в types2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...