我在数据库中有很多关系类型。如何在不使用apoc
的情况下按每种类型计算关系?
答案 0 :(得分:2)
MATCH ()-[relationship]-()
RETURN TYPE(relationship) AS type, COUNT(relationship) AS amount;
第一行指定用于定义关系变量的模式,该模式用于确定第二行中的类型和数量。
╒══════════════╤════════╕
│"type" │"amount"│
╞══════════════╪════════╡
│"BELONGS_TO" │1234567 │
├──────────────┼────────┤
│"CONTAINS" │432552 │
├──────────────┼────────┤
│"IS_PART_OF" │947227 │
├──────────────┼────────┤
│"HOLDS" │4 │
└──────────────┴────────┘
答案 1 :(得分:1)
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