Gremlin-如何计算具有特定属性的顶点的百分比

Gremlin-如何计算具有特定属性的顶点的百分比,gremlin,graph-traversal,datastax-studio,Gremlin,Graph Traversal,Datastax Studio,我试图使用一个gremlin查询来确定满足某个谓词的顶点的百分比,但在存储和传播计算值时遇到了问题 假设我要计算标签为“A”的所有顶点的百分比,这些顶点具有标签为“B”的输出边。我可以在同一查询中打印出标签为“A”的顶点数,以及标签为“B”的输出边的顶点数: g.V().limit(1).project("total","withEdgeB") .by(g.V().hasLabel("A").count()) .by(g.V().hasLabel("A").match(__.as("a").

我试图使用一个gremlin查询来确定满足某个谓词的顶点的百分比,但在存储和传播计算值时遇到了问题

假设我要计算标签为“A”的所有顶点的百分比,这些顶点具有标签为“B”的输出边。我可以在同一查询中打印出标签为“A”的顶点数,以及标签为“B”的输出边的顶点数:

g.V().limit(1).project("total","withEdgeB")
 .by(g.V().hasLabel("A").count())
 .by(g.V().hasLabel("A").match(__.as("a").outE("B").inV()).dedup().count())
这给了我两个相关的值:
total
withEdgeB
。如何传播和计算这些值

理想情况下,我想要这样的东西:

g.V().limit(1).project("total","withEdgeB","percentage")
 .by(g.V().hasLabel("A").count().as("totalA"))
 .by(g.V().hasLabel("A").match(__.as("a").outE("B").inV()).dedup().count().as("totalWithEdgeB"))
 .by(totalWithEdgeB / totalA)

因此,我的问题是,如何访问第三条
by()
语句中的值
totalA
totalWithEdgeB
?还是我完全错了

我会使用一些简单的计算。使用现代图形,查找所有创建了传出
边的
个人
顶点

gremlin> g.V().hasLabel('person').
           choose(outE('created'),
                    constant(1),
                    constant(0)).fold().
           project('total','withCreated','percentage').
             by(count(local)).
             by(sum(local)).
             by(mean(local))
==>[total:4,withCreated:3,percentage:0.75]