Cypher的聚合和别的语言不一样,比如在SQL中聚合是通过group by实现的,而在cypher中是通过聚合函数默认聚合的。看一个例子:
match(n:Person) return n.name, count(n.name)
表面上看没有做任何聚合操作,实际上,因为使用了聚合函数count,因此会自动根据前面字段做聚合操作,上述语句的意思是统计每个名字的使用次数(使用相同名字的个数)。
1、聚合函数
其他聚合函数和count类似,具体含义见下表:
聚合函数 | 含义 | 备注 |
count | 计算数量 | |
sun | 求和 | |
avg | 平均值 | |
percentileDisc | 计算给定百分位在组中的值,数值从0.0~1.0,采用四舍五入返回最接近百分位的值 | return percentileDisc(n.age, 0.7) |
percentileCont | 计算给定百分位在组中的值,数值从0.0~1.0,采用线性插值,在两个值之间计算一个加权平均数 | return percentileCont(n.age, 0.7) |
stdev | 无偏估计的标准偏差,分母是n-1 | |
stdevp | 标准偏差 | |
max/min | 最大/最小 |
2、collect
collect将所有值收集作为一个列表返回,忽略空值。
3、distinct
去重,可用于聚合函数中。