首页 > 其他分享 >Cypher中的group by功能实现

Cypher中的group by功能实现

时间:2023-08-09 10:33:58浏览次数:33  
标签:count 功能 Cypher group name 计数 分组 friendOfFriend 聚合

Cypher 语言并没有原生的 GROUP BY 关键字,但聚合函数(例如 COUNT)隐含地引入了分组。

 

https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#grouping-key-examples

聚合函数采用一组值并计算它们的聚合值。可以对所有匹配路径进行聚合计算,也可以通过引入分组键来进一步划分。分组键是非聚合表达式,用于对进入聚合函数的值进行分组。

例如,假设以下查询包含两个返回表达式ncount(*)

 
RETURN n, count(*)

第一个n不是聚合函数,因此它将是分组键。后者count(*)是一个聚合表达式。根据分组键,匹配的路径将被分为不同的桶。然后,聚合函数将在这些存储桶上运行,计算每个存储桶的聚合值。

用于count(*)对关系类型进行分组和计数

该函数count(*)可用于对匹配关系的类型进行分组并返回类型的数量。

示例 5.count() 询问
MATCH (p:Person {name: 'Keanu Reeves'})-[r]->()
RETURN type(r), count(*)

对匹配的关系类型进行分组,并返回关系类型的组数:

表 5. 结果
类型(r)数数(*)

"ACTED_IN"

1

"KNOWS"

3

行数:2

 

有重复和无重复的计数

此示例尝试查找 的朋友的所有朋友Keanu Reeves并对其进行计数。

count(DISTINCT friendOfFriend)

只会计算friendOfFriend一次,因为DISTINCT会删除重复项。

count(friendOfFriend)

friendOfFriend多次考虑同样的事情。

示例 7.count() 询问
MATCH (p:Person)-->(friend:Person)-->(friendOfFriend:Person)
WHERE p.name = 'Keanu Reeves'
RETURN friendOfFriend.name, count(DISTINCT friendOfFriend), count(friendOfFriend)

节点Carrie Anne MossLiam Neeson都与 具有传出KNOWS关系Guy PearceGuy Pearce因此,当不使用 时,该节点将被计数两次DISTINCT

表 7. 结果
朋友的朋友.name计数(不同的朋友的朋友)计数(朋友的朋友)

"Guy Pearce"

1

2

 

https://stackoverflow.com/questions/52722671/how-to-make-group-by-in-a-cypher-query

 

 

标签:count,功能,Cypher,group,name,计数,分组,friendOfFriend,聚合
From: https://www.cnblogs.com/bonelee/p/17616201.html

相关文章

  • 切面实现下单请求防重提交功能(自定义注释@repeatSubmit)
    该切面功能适用场景下单请求多次提交,导致生成多个相同的订单解决方案前端解决:限制点击下单按钮为1次后失效。不足:用户体验下降,能绕过前端后端解决:防重提交切面解决,自定义注释实现该功能(如下)步骤:自定义注释类RepeatSubmit创建切面并有该注释绑定,在切面类实现防重提......
  • 学习工作功能实现方式
    20230808;1.DataGrid:easyui的datagrid向后台传递参数使用的model@DatapublicclassDataGrid{privateintpage=1;//当前页privateintrows=10;//每页显示记录数privateStringsort=null;//排序字段名privateSortDirectionorder=SortDirec......
  • 在线帮助中心两大必备要素:搜索功能、内容支持,帮助中心设计指导
    对于用户而言,在线帮助中心是一个丰富的使用手册,包括产品功能模块介绍、入门和使用,以及常见问题等,可以帮助用户麻溜地上手一个工具,并在遇到问题时可以查询获取解决方案。在线帮助中心当前关于在线帮助中心建设主要是通过自助建站和在线帮助中心搭建工具两种方式进行,但是传统的自助建......
  • 一篇文章看懂Apipost Mock功能怎么用
    在接口开发过程中,Mock功能可以帮助开发者快速测试和验证接口的正确性和稳定性,以便快速迭代和修复问题。Apipost推出智能Mock功能,可以在智能期望中填写一些触发条件,开启后,Apipost会根据已设置的触发条件,自动匹配旗下的参数判断规则,若满足条件,则会启用预设的期望。这篇文章会模拟用户......
  • 山东布谷科技直播系统源码热点分析:不同芯片实现高质量编码与渲染视频的GPU加速功能
    在现代科技的迅猛发展下,直播系统源码平台被开发搭建出来,为人们的生活方式带来了很大的改变,直播系统源码平台的好友、短视频、直播、社区等功能让很多人越来越热衷于去在平台上刷视频、看直播、分享生活。用户的喜爱也督促了直播系统源码平台要往更高质量上发展,图像质量与系统性能......
  • python实现简单的爬虫功能
    前言Python是一种广泛应用于爬虫的高级编程语言,它提供了许多强大的库和框架,可以轻松地创建自己的爬虫程序。在本文中,我们将介绍如何使用Python实现简单的爬虫功能,并提供相关的代码实例。如何实现简单的爬虫1.导入必要的库和模块在编写Python爬虫时,我们需要使用许多库和模块,其......
  • python实现简单的爬虫功能
    前言Python是一种广泛应用于爬虫的高级编程语言,它提供了许多强大的库和框架,可以轻松地创建自己的爬虫程序。在本文中,我们将介绍如何使用Python实现简单的爬虫功能,并提供相关的代码实例。如何实现简单的爬虫1.导入必要的库和模块在编写Python爬虫时,我们需要使用许多库和模块,其中......
  • SQL 中 select 和 group by 中数据的相互约束关系
    前提本文的前提是mysql的sql_mode中含有ONLY_FULL_GROUP_BY。如果不含有ONLY_FULL_GROUP_BY,那么就没有本文后续说的限制。可以使用下面这条sql查看。SHOWVARIABLESLIKE'sql_mode';--输出sql_mode|ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZER......
  • 【HarmonyOS】【续集】实现从视频提取音频并保存到pcm文件功能(API6 Java)
    【关键字】视频提取类Extractor、视频编解码、保存pcm文件、getAudioTime 【背景和问题】上篇中介绍了从视频提取音频并保存到pcm文件功能,请参考文档:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid=0101591351254000314,解码步骤使用的是普通......
  • 批量删除功能(VUE3语法)
    使用elementui-el-table方式编写功能点:点击全选/单选可以进行删除 <el-table:data="date"ref="grayscaleTableRef"min-height="288"max-height="510"style="width:1......