如何对返回的列 Cypher 中的所有值求和?

How to sum all values in a returned column Cypher?

我编写了以下 Cypher 查询。

MATCH (c:Customers {name:'Paul Pogba'})-[:ORDERED]->(o:Orders)-[:BOUGHT]->(i:Items) Return c, i.kit, count(i)

我得到这样的 table 作为我的输出。

╒═════════════════════╤═════════════╤══════════╕
│"c"                  │"i.kit"      │"count(i)"│
╞═════════════════════╪═════════════╪══════════╡
│{"name":"Paul Pogba"}│"bumper"     │1         │
├─────────────────────┼─────────────┼──────────┤
│{"name":"Paul Pogba"}│"wing mirror"│1         │
├─────────────────────┼─────────────┼──────────┤
│{"name":"Paul Pogba"}│"bonnet"     │1         │
├─────────────────────┼─────────────┼──────────┤
│{"name":"Paul Pogba"}│"boot"       │2         │
├─────────────────────┼─────────────┼──────────┤
│{"name":"Paul Pogba"}│"wheel"      │1         │
├─────────────────────┼─────────────┼──────────┤
│{"name":"Paul Pogba"}│"windscreen" │1         │
├─────────────────────┼─────────────┼──────────┤
│{"name":"Paul Pogba"}│"door"       │1         │
└─────────────────────┴─────────────┴──────────┘

如何在 neo4j 中使用 Cypher 对“count(i)”列中的所有值求和?

您正在通过 returning c, i.kit, count(i) 强制拆分。图数据库所做的事情绝对有意义。要获得总计 return count(i)

如果您出于某种奇怪的原因想要得到您所要求的结果。

MATCH (c:Customers {name:'Paul Pogba'})-[:ORDERED]->(o:Orders)-[:BOUGHT]->(i:Items)
WITH collect(DISTINCT c) AS _c, collect(DISTINCT i) AS _i, count(i) AS count_i
UNWIND _c AS c
UNWIND _i AS i
RETURN c, i.kit, count_i