按多个键分组并在 Gremlin 上求和

Group By Multiple Keys And Sum On Gremlin

我有一个查询:

GraphTraversal t = graph.V().hasLabel("App").as("a")
        .inE("RANKS").as("r")
        .outV().as("k")
        .choose(__.select("k").by("countryCode").is(__.in(...)),
                __.math("1.0 / r").by("rank1"),
                __.math("1.0 / r").by("rank2"))
        .as("score")
        ...;

在这里,我想汇总如下数据:

group by a.appId, k.countryCode, sum(score)

我试过:

.group("a").by("appId").group("k").by("countryCode").by(...select("score").sum())

但这不起作用。

你有什么建议吗?

已解决喜欢:

GraphTraversal t = graph.V().hasLabel("App").as("a")
        .inE("RANKS").as("r")
        .outV().as("k")
        .choose(__.select("k").by("countryCode").is(__.in(...)),
                __.math("1.0 / r").by("rank1"),
                __.math("1.0 / r").by("rank2"))
        .as("score")
    .select("a", "k").by("appId").by("countryCode")
                .group().by().by(__.select("score").sum().as("sum_score"))

解决方式如下:

GraphTraversal t = graph.V().hasLabel("App").as("a")
        .inE("RANKS").as("r")
        .outV().as("k")
        .choose(__.select("k").by("countryCode").is(__.in(...)),
                __.math("1.0 / r").by("rank1"),
                __.math("1.0 / r").by("rank2"))
        .as("score")
    .select("a", "k").by("appId").by("countryCode")
                .group().by().by(__.select("score").sum().as("sum_score"))