天天看點

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使用。

圖:

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

計數(count)使用來計算行數。Count有兩種使用方法。Count(*)計算比對的行的行數,count(<辨別符>)計算辨別符中非空值數。

計算連結到一個節點的節點數,可以使用count(*)。

查詢:

START n=node(2)

MATCH (n)-->(x)

RETURN n, count(*)

傳回開始節點和相關節點節點數。

結果:

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

計算分組了得關系類型,傳回關系類型并使用count(*)計算。

MATCH (n)-[r]->()

RETURN type(r), count(*)

傳回關系類型和其分組數。

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

相比使用count(*),可能計算辨別符更實在。

RETURN count(x)

傳回連結到開始節點上的節點數

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

START n=node(2,3,4,1)

RETURN count(n.property?)

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

求和(sum)

Sum集合簡單計算數值類型的值。Null值将自動去掉。如下:

START n=node(2,3,4)

RETURN sum(n.property)

計算所有節點屬性值之和。

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

平均值(avg)

Avg計算數量列的平均值

RETURN avg(n.property)

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

最大值(max)

Max查找數字列中的最大值。

RETURN max(n.property)

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

最小值(min)

Min使用數字屬性作為輸入,并傳回在列中最小的值。

RETURN min(n.property)

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

聚類(COLLECT)

Collect将所有值收集到一個集合list中。

RETURN collect(n.property)

傳回一個帶有所有屬性值的簡單列。

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

相異(DISTINCT)

聚合函數中使用distinct來去掉值中重複的資料。

START a=node(2)

MATCH a-->b

RETURN count(distinct b.eyes)

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