阅读(942) (23)

Neo4j CQL - AGGREGATION聚合

2016-12-19 07:40:49 更新

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


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


聚合函数列表

S.No.聚集功能描述
1。COUNT它返回由MATCH命令返回的行数。
2。MAX它从MATCH命令返回的一组行返回最大值。
3。MIN它返回由MATCH命令返回的一组行的最小值。
4。SUM它返回由MATCH命令返回的所有行的求和值。
5。AVG它返回由MATCH命令返回的所有行的平均值。

现在我们将通过示例详细讨论每个Neo4j CQL AGGREGATION函数


计数

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


函数语法

COUNT(<value>)

注意 -

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


示例-

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


步骤1 -在数据浏览器中的dollar提示符下键入以下命令。

MATCH (e:Employee) 
RETURN e.id,e.name,e.sal,e.deptno


MATCH (e:Employee)  RETURN e.id,e.name,e.sal,e.deptno


步骤2 -点击执行按钮,观察结果。


查询返回
我们可以观察到这个查询返回4行。


步骤3 -键入以下命令,然后单击执行按钮。

MATCH (e:Employee) RETURN COUNT(*)

ATCH (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>应该是节点或关系的名称。

让我们用一个例子看看MAX和MIN的功能。


示例-

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


步骤1 -在数据浏览器中的dollar提示符下键入以下命令。

MATCH (e:Employee) 
RETURN e.id,e.name,e.sal,e.deptno


MATCH (e:Employee)  RETURN e.id,e.name,e.sal,e.deptno


步骤2 -点击执行按钮,观察结果。


返回4行
我们可以观察到这个查询返回4行。


步骤3 -键入以下命令,然后单击执行按钮。

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


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


AVG

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


函数的语法

AVG(<property-name> )


SUM

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

函数的语法

SUM(<property-name> )

让我们用一个例子来检查SUM和AVG函数。


例1 -

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


步骤1 -在数据浏览器中的dollar提示符下键入以下命令。

MATCH (e:Employee) 
RETURN e.id,e.name,e.sal,e.deptno


MATCH (e:Employee)  RETURN e.id,e.name,e.sal,e.deptno


步骤2 -点击执行按钮,观察结果。


查找所有员工节点的总和平均薪水值
我们可以观察到这个查询返回4行。


第3步 -键入以下命令,然后单击执行按钮。

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


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