深入学习Gremlin(11):统计运算

第11期 Gremlin Steps:

sum()max()min()mean()

本系列文章的Gremlin示例均在HugeGraph图数据库上执行,环境搭建可参考准备Gremlin执行环境,本文示例均以其中的“TinkerPop关系图”为初始数据。

深入学习Gremlin(11):统计运算_第1张图片
tinkerpop关系图

上一期:深入学习Gremlin(10):逻辑运算

统计运算说明

Gremlin可以在Number类型的流(遍历器)上做简单的统计运算,包括计算总和、最大值、最小值、均值。

下面讲解实现上述功能的具体Step:

  • sum():将流上的所有的数字求和;
  • max():对流上的所有的数字求最大值;
  • min():对流上的所有的数字求最小值;
  • mean():将流上的所有的数字求均值;

这四种Step只能作用在Number类型的流上,在java里就是继承自java.lang.Number类。

实例讲解

下面通过实例来深入理解每一个操作。

  1. Step sum()

    示例1:

    // 计算所有“person”的“age”的总和
    g.V().hasLabel('person').values('age').sum()
    
    深入学习Gremlin(11):统计运算_第2张图片

    示例2:

    // 计算所有“person”的“created”出边数的总和
    g.V().hasLabel('person').map(outE('created').count()).sum()
    
    深入学习Gremlin(11):统计运算_第3张图片

    试着输入g.V().hasLabel('person').map(outE('created').count())看看每个“person”的“created”出边数

  2. Step max()

    示例1:

    // 计算所有“person”的“age”中的最大值
    g.V().hasLabel('person').values('age').max()
    
    深入学习Gremlin(11):统计运算_第4张图片

    示例2:

    // 计算所有“person”的“created”出边数的最大值
    g.V().hasLabel('person').map(outE('created').count()).max()
    
    深入学习Gremlin(11):统计运算_第5张图片
  3. Step min()

    示例1:

    // 计算所有“person”的“age”中的最小值
    g.V().hasLabel('person').values('age').min()
    
    深入学习Gremlin(11):统计运算_第6张图片

    示例2:

    // 计算所有“person”的“created”出边数的最小值
    g.V().hasLabel('person').map(outE('created').count()).min()
    
    深入学习Gremlin(11):统计运算_第7张图片
  4. Step mean()

    示例1:

    // 计算所有“person”的“age”的均值
    g.V().hasLabel('person').values('age').mean()
    
    深入学习Gremlin(11):统计运算_第8张图片

    示例2:

    // 计算所有“person”的“created”出边数的均值
    g.V().hasLabel('person').map(outE('created').count()).mean()
    
    深入学习Gremlin(11):统计运算_第9张图片

下一期:深入学习Gremlin(12):待添加

你可能感兴趣的:(深入学习Gremlin(11):统计运算)