Cypher查詢語言--Neo4j之聚合函數(五)


目錄

  1. 聚合Aggregation
    1. 計數
    2. 計算節點數
    3. 分組計算關系類型
    4. 計算實體數
    5. 計算非空可以值數
    6. 求和sum
    7. 平均值avg
    8. 最大值max
    9. 最小值min
    10. 聚類COLLECT
    11. 相異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)

 

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM