Cypher查询语言--Neo4j之聚合函数(五)

时间:2021-12-18 05:27:24

目录

  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(*)计算。

查询:

START n=node(2)

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

RETURN type(r), count(*)

返回关系类型和其分组数。

结果:

Cypher查询语言--Neo4j之聚合函数(五)

计算实体数

相比使用count(*),可能计算标识符更实在。

查询:

START n=node(2)

MATCH (n)-->(x)

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计算数量列的平均值

查询:

START n=node(2,3,4)

RETURN avg(n.property)

结果:

Cypher查询语言--Neo4j之聚合函数(五)

最大值(max)

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

查询:

START n=node(2,3,4)

RETURN max(n.property)

结果:

Cypher查询语言--Neo4j之聚合函数(五)

最小值(min)

Min使用数字属性作为输入,并返回在列中最小的值。

查询:

START n=node(2,3,4)

RETURN min(n.property)

结果:

Cypher查询语言--Neo4j之聚合函数(五)

聚类(COLLECT)

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

查询:

START n=node(2,3,4)

RETURN collect(n.property)

返回一个带有所有属性值的简单列。

结果:

Cypher查询语言--Neo4j之聚合函数(五)

相异(DISTINCT)

聚合函数中使用distinct来去掉值中重复的数据。

查询:

START a=node(2)

MATCH a-->b

RETURN count(distinct b.eyes)

结果:

Cypher查询语言--Neo4j之聚合函数(五)