我的数据库中有很多种关系类型。如何在不使用apoc
的情况下按每种类型计算关系数量?
MATCH ()-[relationship]->()
RETURN TYPE(relationship) AS type, COUNT(relationship) AS amount
ORDER BY amount DESC;
第一行指定了用于定义关系变量的模式,该模式用于在第二行中确定类型和数量。
╒══════════════╤════════╕
│"type" │"amount"│
╞══════════════╪════════╡
│"BELONGS_TO" │1234567 │
├──────────────┼────────┤
│"CONTAINS" │432552 │
├──────────────┼────────┤
│"IS_PART_OF" │947227 │
├──────────────┼────────┤
│"HOLDS" │4 │
└──────────────┴────────┘
在3.5.x中还有一个内置的过程可用于检索计数,但需要进行一些筛选才能得到您感兴趣的内容:
"最初的回答"
CALL db.stats.retrieve('GRAPH COUNTS') YIELD data
UNWIND [data IN data.relationships WHERE NOT exists(data.startLabel) AND NOT exists(data.endLabel)] as relCount
RETURN coalesce(relCount.relationshipType, 'all') as relationshipType, relCount.count as count
ORDER BY xyz DESC
。 - Guy Codermatch (a)-[r]-(b) return distinct labels(a), labels(b), type(r) as type, count(r) as amount
- Anna YashinaMATCH ()-[relationship]->()
- roschach