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条)