【发布时间】:2016-12-08 23:09:41
【问题描述】:
我正在努力弄清楚如何在 Gremlin 中进行嵌套 GROUP BY。
我的图表是这样的([...] 中的顶点):
[survey][ce 示例]--currentResponseState-->[响应状态]
- 1 调查有许多 CE。
- 1 CE 有许多 CE 样本。
- 每个 CE 样本都有一个当前响应状态。
- 有 3 种可能的状态(未开始、进行中、已完成)。
我想按 CE 和响应状态计算 CE 样本。例如:
CE=CE01,状态=未开始,计数=45。
CE=CE01,状态=进行中,计数=34。
CE=CE01,状态=已完成,计数=25。
CE=CE02,状态=未开始,计数=60。
CE=CE02,状态=进行中,计数=33。
CE=CE02,状态=完成,计数=72。
CE=CE03,状态=未开始,计数=44。等等
我可以使用以下查询获取组计数,该查询显示每个状态的正确计数(在每个状态的单独列中),每个 CE 有单独的行,但它不显示 CE 名称:
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 执行此操作的提示。
【问题讨论】:
-
对不起,忘了解释:'groupCount().by("code")'位是按状态码分组计数的。