[英]Group By Multiple Keys And Sum On Gremlin
I have a query like:我有一个像这样的查询:
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")
...;
In here, I want to aggregate data like:在这里,我想汇总如下数据:
group by a.appId, k.countryCode, sum(score)
I tried like:我试过像:
.group("a").by("appId").group("k").by("countryCode").by(...select("score").sum())
but this doesnt work.但这不起作用。
Do you have any suggestion?你有什么建议吗?
Solved like :解决如下:
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"))
Solved like:解决如下:
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"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.