第11期 Gremlin Steps:
sum()
堡掏、max()
应结、min()
、mean()
本系列文章的Gremlin示例均在HugeGraph圖數(shù)據(jù)庫上執(zhí)行泉唁,環(huán)境搭建可參考準(zhǔn)備Gremlin執(zhí)行環(huán)境鹅龄,本文示例均以其中的“TinkerPop關(guān)系圖”為初始數(shù)據(jù)。
上一期:深入學(xué)習(xí)Gremlin(10):邏輯運(yùn)算
統(tǒng)計(jì)運(yùn)算說明
Gremlin可以在Number類型的流(遍歷器)上做簡單的統(tǒng)計(jì)運(yùn)算亭畜,包括計(jì)算總和扮休、最大值、最小值拴鸵、均值玷坠。
下面講解實(shí)現(xiàn)上述功能的具體Step:
-
sum()
:將流上的所有的數(shù)字求和; -
max()
:對(duì)流上的所有的數(shù)字求最大值宝踪; -
min()
:對(duì)流上的所有的數(shù)字求最小值侨糟; -
mean()
:將流上的所有的數(shù)字求均值;
這四種Step只能作用在Number類型的流上瘩燥,在java里就是繼承自
java.lang.Number
類秕重。
實(shí)例講解
下面通過實(shí)例來深入理解每一個(gè)操作。
-
Step
sum()
示例1:
// 計(jì)算所有“person”的“age”的總和 g.V().hasLabel('person').values('age').sum()
示例2:
// 計(jì)算所有“person”的“created”出邊數(shù)的總和 g.V().hasLabel('person').map(outE('created').count()).sum()
試著輸入
g.V().hasLabel('person').map(outE('created').count())
看看每個(gè)“person”的“created”出邊數(shù) -
Step
max()
示例1:
// 計(jì)算所有“person”的“age”中的最大值 g.V().hasLabel('person').values('age').max()
示例2:
// 計(jì)算所有“person”的“created”出邊數(shù)的最大值 g.V().hasLabel('person').map(outE('created').count()).max()
-
Step
min()
示例1:
// 計(jì)算所有“person”的“age”中的最小值 g.V().hasLabel('person').values('age').min()
示例2:
// 計(jì)算所有“person”的“created”出邊數(shù)的最小值 g.V().hasLabel('person').map(outE('created').count()).min()
-
Step
mean()
示例1:
// 計(jì)算所有“person”的“age”的均值 g.V().hasLabel('person').values('age').mean()
示例2:
// 計(jì)算所有“person”的“created”出邊數(shù)的均值 g.V().hasLabel('person').map(outE('created').count()).mean()