1. 文章
  2. 文章详情

Neo4j CQL - (AGGREGATION)聚合函数

Neo4j CQL提供了一些在RETURN子句中使用的聚合函数。 类似于SQL中的GROUP BY。

我们可以使用MATCH命令中的RETURN +聚合函数来处理一组节点并返回一些聚合值。

聚合函数用于对查询的结果进行统计:

  • avg():计算均值
  • count(exp):用于计算非null值(value)的数量,使用 count(distinct exp)进行无重复非null值的计数,使用count(*):计算值或记录的总数量,包括null值
  • max(),min():求最大值和最小值,在计算极值时,null被排除在外,min(null)或max(null)返回null
  • sum():求和,在求和时,null被排除在外,sum(null)的结果是0
  • collect():把返回的多个值或记录组装成一个列表,collect(null)返回一个空的列表

在聚合计算中,可以引用分组键来对查询的结果进行分组聚合,例如,在return子句中,如果表达式不是聚合函数,那么该表达式是分组key,下面的表达式是按照type(r)分组,计算每个分组中记录的数量。

RETURN type(r), count(*)

COUNT

它从MATCH子句获取结果,并计算结果中出现的行数,并返回该计数值。 所有CQL函数应使用“()”括号。

语法

COUNT(value)

注意 -

value可以是*,节点或关系标签名称或属性名称。

示例-

演示如何使用COUNT(*)函数返回数据库中可用的Employee节点数。

MATCH (e:Employee) RETURN COUNT(*)

此查询返回值4,因为数据库包含4个Employee节点。

MAX

它采用一组行和节点或关系的property-name作为输入,并从给定行的give property-name列中查找最大值。

语法

MAX(property-name)

MIN

它采用一组行和节点或关系的property-name作为输入,并从给定行的give property-name列中查找最小值。

语法

MIN(property-name)

注意 -

property-name应该是节点或关系的名称。

示例-

演示如何从所有员工节点中查找最高和最低工资值

MATCH (e:Employee) 
RETURN MAX(e.sal),MIN(e.sal)

此命令从数据库中可用的所有Employee节点中查找最大和最小工资值。

AVG

它采用一组行和节点或关系的property-name作为输入,并从给定行的give property-name列中查找平均值。

语法

AVG(property-name)

SUM

它采用一组行和节点或关系的property-name作为输入,并从给定行的give property-name列中查找求和值。

语法

SUM(property-name)

示例-

演示如何查找所有员工节点的总和平均薪水值

MATCH (e:Employee) 
RETURN SUM(e.sal),AVG(e.sal)

此命令从数据库中可用的所有Employee节点查找总和平均薪水值。

发表评论

登录后才能评论

评论列表(0条)