目錄
- 聚合Aggregation
- 計數
- 計算節點數
- 分組計算關系類型
- 計算實體數
- 計算非空可以值數
- 求和sum
- 平均值avg
- 最大值max
- 最小值min
- 聚類COLLECT
- 相異DISTINCT
聚合(Aggregation)
為集合計算數據,Cypher提供聚類功能,與SQL的group by類似。在return語句中發現的任何聚類函數,所有沒有聚類函數的列將作為聚合key使用。
圖:
計數
計數(count)使用來計算行數。Count有兩種使用方法。Count(*)計算匹配的行的行數,count(<標識符>)計算標識符中非空值數。
計算節點數
計算鏈接到一個節點的節點數,可以使用count(*)。
查詢:
START n=node(2)
MATCH (n)-->(x)
RETURN n, count(*)
返回開始節點和相關節點節點數。
結果:
分組計算關系類型
計算分組了得關系類型,返回關系類型並使用count(*)計算。
查詢:
START n=node(2)
MATCH (n)-[r]->()
RETURN type(r), count(*)
返回關系類型和其分組數。
結果:
計算實體數
相比使用count(*),可能計算標識符更實在。
查詢:
START n=node(2)
MATCH (n)-->(x)
RETURN count(x)
返回鏈接到開始節點上的節點數
結果:
計算非空可以值數
查詢:
START n=node(2,3,4,1)
RETURN count(n.property?)
結果:
求和(sum)
Sum集合簡單計算數值類型的值。Null值將自動去掉。如下:
查詢:
START n=node(2,3,4)
RETURN sum(n.property)
計算所有節點屬性值之和。
結果:
平均值(avg)
Avg計算數量列的平均值
查詢:
START n=node(2,3,4)
RETURN avg(n.property)
結果:
最大值(max)
Max查找數字列中的最大值。
查詢:
START n=node(2,3,4)
RETURN max(n.property)
結果:
最小值(min)
Min使用數字屬性作為輸入,並返回在列中最小的值。
查詢:
START n=node(2,3,4)
RETURN min(n.property)
結果:
聚類(COLLECT)
Collect將所有值收集到一個集合list中。
查詢:
START n=node(2,3,4)
RETURN collect(n.property)
返回一個帶有所有屬性值的簡單列。
結果:
相異(DISTINCT)
聚合函數中使用distinct來去掉值中重復的數據。
查詢:
START a=node(2)
MATCH a-->b
RETURN count(distinct b.eyes)
結果: