首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Neo4j中仿真窗口SQL函数

在Neo4j中仿真窗口SQL函数
EN

Stack Overflow用户
提问于 2019-02-28 09:42:52
回答 1查看 199关注 0票数 0

我有以下查询,以检索研究人员每一过程的前2篇论文(引用次数):

代码语言:javascript
复制
MATCH (p:Paper)-[:SUBMITTED_TO]->(a:Proceeding),(p)-[:CITED_BY]->()
WITH p.paperTitle as Paper, size((p)-[:CITED_BY]->()) as numCitations, 
collect(distinct a.proceedingName) as Proceedings
UNWIND Proceedings AS Proceeding
WITH Paper, numCitations, Proceeding
ORDER BY Paper, numCitations, Proceeding
RETURN Paper, numCitations, collect(Proceeding) as Proceedings
ORDER BY Proceedings, numCitations DESC

我从中得到的输出是:

代码语言:javascript
复制
Paper      numCitations     Proceedings
Title1     4                Proc1
Title2     3                Proc1
Title3     2                Proc1
Title4     7                Proc2
Title5     5                Proc2
Title6     3                Proc2
Title7     8                Proc3
Title8     4                Proc3
Title9     2                Proc3

现在我要做的是只获得每一次过程中出现的所有文件中的前2篇(所有这些过程中都有3篇),但是如果在查询结束时使用限制2,我只会得到所有文件中的前2名(而不是每个过程):

代码语言:javascript
复制
Paper      numCitations     Proceedings
Title7     8                Proc3
Title4     7                Proc2

注意,Proc1被完全丢弃了。这不是我要找的。对于如何在Neo4j中做到这一点,有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-02-28 14:33:01

下面是我在家谱中使用的一个查询,用于提取一组男性的两个大儿子(由他们的RN识别):

代码语言:javascript
复制
match (p:Person)<-[:father]-(c:Person) where p.RN in [5,7,27]
with p, c order by c.BD
with p.RN as RN,collect(c.fullname) as cC
return RN,cC[0..2]

通过类推,您可以根据numCitations (而不是出生日期)对数据进行排序,然后将结果限制为2。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54922557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档