You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon Neptune中Gremlin按月份分组求和的问题求助

Amazon Neptune Gremlin分组求和解决方案

问题背景

需要按monthName属性对计算得到的mathResult字段分组求和,现有分组查询能得到各月份的数值列表,但使用values('mathResult').sum()时触发UnsupportedOperationException错误。

错误原因

Amazon Neptune的Gremlin实现不支持values('mathResult').sum()这种嵌套聚合的写法,需调整聚合步骤的语法。

正确查询语句

方式一:直接在分组中聚合求和

使用sum().by('mathResult')作为分组的第二个by参数,直接对每个分组的mathResult求和:

g.V().hasLabel('Customer').out().hasLabel('Workspace')
.has('lastUpdatedOn').has('createdOn')
.project('gp1','var1','var2')
    .by(values('lastUpdatedOn_MN'))
    .by(values('createdOn'))
    .by(values('lastUpdatedOn'))
.project('mathResult','monthName')
    .by(math('var2-var1'))
    .by('gp1')
.group().by('monthName').by(sum().by('mathResult'))

方式二:先分组再映射求和

如果方式一存在兼容性问题,可先分组得到数值列表,再通过map步骤对每个列表求和:

g.V().hasLabel('Customer').out().hasLabel('Workspace')
.has('lastUpdatedOn').has('createdOn')
.project('gp1','var1','var2')
    .by(values('lastUpdatedOn_MN'))
    .by(values('createdOn'))
    .by(values('lastUpdatedOn'))
.project('mathResult','monthName')
    .by(math('var2-var1'))
    .by('gp1')
.group().by('monthName').by('mathResult')
.map(entry -> entry.setValue(entry.getValue().sum()))

预期输出

执行上述查询后,将得到各月份的求和结果:

{
    "MARCH": 394759.0,
    "FEBRUARY": 23820301.0
}

内容的提问来源于stack exchange,提问作者Shirshendu Shekhar Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 12:43:16