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

第11期 Gremlin Steps:

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

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

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()
    

    示例2:

    // 计算所有“person”的“created”出边数的总和
    g.V().hasLabel('person').map(outE('created').count()).sum()
    

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

  2. Step max()

    示例1:

    // 计算所有“person”的“age”中的最大值
    g.V().hasLabel('person').values('age').max()
    

    示例2:

    // 计算所有“person”的“created”出边数的最大值
    g.V().hasLabel('person').map(outE('created').count()).max()
    
  3. Step min()

    示例1:

    // 计算所有“person”的“age”中的最小值
    g.V().hasLabel('person').values('age').min()
    

    示例2:

    // 计算所有“person”的“created”出边数的最小值
    g.V().hasLabel('person').map(outE('created').count()).min()
    
  4. Step mean()

    示例1:

    // 计算所有“person”的“age”的均值
    g.V().hasLabel('person').values('age').mean()
    

    示例2:

    // 计算所有“person”的“created”出边数的均值
    g.V().hasLabel('person').map(outE('created').count()).mean()
    

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,147评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,399评论 19 139
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,151评论 0 10
  • 在我们重复做一些事情的时候,就需要使用循环了。而 AHK 正是能将复杂的手动工作自动化的工具,循环自然必不可少。但...
    陌辞寒阅读 14,124评论 2 4
  • 嗨,你相信人有重生吗?你时常会想出和做一些同龄人不可理解的事情吗?估计你们大部分人是不会的,而我一个已过25的人,...
    易文伟律师阅读 4,237评论 1 2