【问题标题】:DSE Graph Gremlin GROUP BY count queryDSE Graph Gremlin GROUP BY 计数查询
【发布时间】: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")'位是按状态码分组计数的。

标签: datastax gremlin


【解决方案1】:

一个示例图表会很有帮助,但让我们尝试一下。我认为您正在寻找这种遍历:

g.V().hasLabel("survey", "surveyId", "LFS").in("forSurvey").as("CE").
  out("collectedFrom").out("currentResponseState").as("State).
  select("CE", "State").by("name", "code").groupCount()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 2020-11-19
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 2013-05-30
    相关资源
    最近更新 更多