我正在努力弄清楚如何在Gremlin中进行嵌套的GROUP BY。
我的图表是这样的([...]中的顶点):
[survey]< - forSurvey - [ce] - gatherFrom - > [ce 样品] - currentResponseState - > [responseState]
我想通过CE和响应状态来计算CE样本。例如:
CE = CE01,State =未启动,count = 45。
CE = CE01,状态=正在进行中,计数= 34。
CE = CE01,State = completed,count = 25.
CE = CE02,State =未启动,count = 60。
CE = CE02,状态=正在进行中,计数= 33。
CE = CE02,State = completed,count = 72。
CE = CE03,State =未启动,count = 44。等
我可以使用以下查询获取组计数,该查询显示每个状态的正确计数(在每个状态的单独列中),每个CE都有一个单独的行,但它不显示CE名称:< / p>
g.V().hasLabel("survey").has("surveyId","LFS")
.in("forSurvey").as("ce")
.local(out("collectedFrom")
.out("currentResponseState")
.groupCount().by("code")).as("counts")
.select("counts")
但我无法弄清楚Gremlin如何将CE名称与计数一起返回。如果我在“select()”投影中包含“ce”以获取CE顶点的名称,则根本没有结果。
这在SQL中是微不足道的,在那里我只是GROUP BY相关列,但Gremlin是一个不同的世界。
有关如何使用DSE Graph 5.0 Gremlin执行此操作的任何提示将不胜感激。
答案 0 :(得分:0)
示例图表会有所帮助,但我们试试吧。我想你正在寻找这个遍历:
g.V().hasLabel("survey", "surveyId", "LFS").in("forSurvey").as("CE").
out("collectedFrom").out("currentResponseState").as("State).
select("CE", "State").by("name", "code").groupCount()