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

AWS Neptune中如何基于日期字段的月份名称实现分组统计

实现方法

不需要拆分存储年、月、日这类独立时间属性,AWS Neptune支持的Gremlin语法内置了日期处理能力,可以直接实现和MySQL MONTHNAME() 等价的分组统计逻辑,根据你使用的Neptune引擎版本选对应写法即可。

  • 引擎版本1.2.0及以上(兼容Gremlin 3.6+):直接用内置monthName()步骤提取月份名
// 按月份名分组统计Ticket数量
g.V().hasLabel('Ticket')
  .group()
    .by(values('createdOn').monthName())
    .by(count())
  // 可选:按月份自然顺序排序返回结果
  .order(local).by(Column.keys, Order.asc)

返回结果的key为January/February这类标准英文月份名称,value为对应月份的工单总数,逻辑和MySQL的MONTHNAME(createdOn) GROUP BY完全一致。

  • 1.2.0以下的低版本引擎:用dateFormat()步骤通过格式化串提取月份名
g.V().hasLabel('Ticket')
  .group()
    .by(values('createdOn').dateFormat('MMMM'))
    .by(count())
  .order(local).by(Column.keys, Order.asc)

这里MMMM是标准日期格式化占位符,会将日期值转换为完整的英文月份名称;如果需要返回其他语言的月份名,给dateFormat()传入对应Locale参数即可。

注意:上述写法要求createdOn属性存储为Neptune原生支持的日期/时间戳类型,如果存的是自定义格式的日期字符串,需要先通过日期解析步骤转为原生日期类型再做提取,否则函数会执行报错。

如果这个按月统计的报表是高频查询场景,冗余存储月份字段确实能降低运行时计算开销、提升查询速度;但如果是低频统计需求,或者不想修改现有数据结构,上面的写法完全可以满足需求,不需要额外调整存量数据。

内容的提问来源于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.08.30 13:30:54