2016-07-21 3 views
0

Я хочу показать пользователей, сумма которых сумма транзакций больше 5000 Как показать отношение [: TRANS_AMOUNT] тоже. Мой запросПоказать отношения с предложением «WITH» Neo4j

MATCH(c)-[r:TRANS_AMOUNT]->(e) 
WITH sum(toInt(e.totalAmount))as l,c 
WHERE l>5000 
RETURN c,l; 

Вышеуказанные группы запросов сумму на клиента и проверяет, если сумма сумма больше чем 5000. Как отобразить отношения, где это происходит, тоже?

+0

вы пытались добавьте 'r' в предложение' return'? – Supamiu

+0

Дает ошибку @Supamiu – IshaanM11

+0

Не могли бы вы добавить эту ошибку на свой вопрос? – Supamiu

ответ

0

Добавить отношения к WITH заявление и вернуть его:

MATCH (c)-[r:TRANS_AMOUNT]->(e) 
WITH sum(toInt(e.totalAmount))as l, c, r 
WHERE l>5000 
RETURN c, l, r 

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

MATCH (c)-[r:TRANS_AMOUNT]->(e) 
WITH sum(toInt(e.totalAmount))as l, c, collect(r) as rels 
WHERE l>5000 
RETURN c, l, rels 
+1

Вы можете группировать отношения, используя 'collect (r)', чтобы избежать возврата столько строк, сколько есть отношений. OP, вероятно, все равно хочет собрать собранную коллекцию. –

+0

Да, хорошая точка. –

+0

@MartinPreusse Если я добавлю отношения в предложение WITH, он также группирует сумму по краю. Который я не хочу – IshaanM11

Смежные вопросы