第11期 Gremlin Steps:
sum()
、max()
、min()
、mean()
本系列文章的Gremlin示例均在HugeGraph图数据库上执行,环境搭建可参考准备Gremlin执行环境,本文示例均以其中的“TinkerPop关系图”为初始数据。
统计运算说明
Gremlin可以在Number类型的流(遍历器)上做简单的统计运算,包括计算总和、最大值、最小值、均值。
下面讲解实现上述功能的具体Step:
-
sum()
:将流上的所有的数字求和; -
max()
:对流上的所有的数字求最大值; -
min()
:对流上的所有的数字求最小值; -
mean()
:将流上的所有的数字求均值;
这四种Step只能作用在Number类型的流上,在java里就是继承自
java.lang.Number
类。
实例讲解
下面通过实例来深入理解每一个操作。
-
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”出边数 -
Step
max()
示例1:
// 计算所有“person”的“age”中的最大值 g.V().hasLabel('person').values('age').max()
示例2:
// 计算所有“person”的“created”出边数的最大值 g.V().hasLabel('person').map(outE('created').count()).max()
-
Step
min()
示例1:
// 计算所有“person”的“age”中的最小值 g.V().hasLabel('person').values('age').min()
示例2:
// 计算所有“person”的“created”出边数的最小值 g.V().hasLabel('person').map(outE('created').count()).min()
-
Step
mean()
示例1:
// 计算所有“person”的“age”的均值 g.V().hasLabel('person').values('age').mean()
示例2:
// 计算所有“person”的“created”出边数的均值 g.V().hasLabel('person').map(outE('created').count()).mean()