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

如何使用Gremlin查询统计各地点拥有相同技能的员工数量

Gremlin查询:按办公地点统计指定技能员工数

1. 查询单个地点的指定技能员工数

假设你的图模型结构如下:

  • 员工顶点标签为 Employee,办公地点存储在 location 属性中(如 'hyd'、'vizag')
  • 技能是独立顶点(标签 Skill),员工与技能通过 has_skill 边关联

查询海得拉巴(hyd)拥有Java技能的员工数量:

g.V().hasLabel('Employee').has('location', 'hyd')
  .out('has_skill').hasLabel('Skill').has('name', 'Java')
  .count()

如果技能直接存储为员工的列表属性(如 skills),查询可简化为:

g.V().hasLabel('Employee').has('location', 'hyd')
  .has('skills', 'Java')
  .count()

2. 按所有地点分组统计指定技能员工数

如果需要一次性统计所有办公地点的指定技能员工数量,使用分组查询即可自动完成统计:

技能为关联顶点的场景

g.V().hasLabel('Employee')
  .out('has_skill').hasLabel('Skill').has('name', 'Java')
  .in('has_skill')
  .group().by('location').by(count())

返回结果为键值对集合,键是办公地点,值为对应地点拥有Java技能的员工数。

技能为员工属性的场景

g.V().hasLabel('Employee').has('skills', 'Java')
  .group().by('location').by(count())

3. 过滤特定地点分组统计

如果只需要统计指定的几个地点(如hyd和vizag),在查询中添加地点过滤条件:

// 技能为关联顶点的场景
g.V().hasLabel('Employee').has('location', within('hyd', 'vizag'))
  .out('has_skill').hasLabel('Skill').has('name', 'Java')
  .in('has_skill')
  .group().by('location').by(count())

内容的提问来源于stack exchange,提问作者user19442466

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:30:54