Neo4j - 订购作为中间结果一部分的列表
Posted
技术标签:
【中文标题】Neo4j - 订购作为中间结果一部分的列表【英文标题】:Neo4j - Order a list which is part of intermediate result 【发布时间】:2021-11-23 19:14:11 【问题描述】:我使用movies2 数据库作为 Neo4j 桌面中查询调优练习的一部分。 我想返回一个表格,其中包含多次使用的电影标题,没有。该标题被使用的次数,以及其发布年份的排序列表。桌子本身应该有更高的电影。顶部的标题重用。
构建可以完成上述任务的 Cypher 查询的最有效方法是什么?
【问题讨论】:
【参考方案1】:我想出了一个(可能是复杂的)查询来完成必要的输出。
CALL
CALL
MATCH (m:Movie)
WITH collect(DISTINCT m.title) AS mTitles
UNWIND mTitles AS mt
MATCH (m:Movie)
WHERE m.title = mt
WITH mt, count(*) AS numT, collect(m.releaseYear) AS relYr
WHERE numT > 1
RETURN mt, numT, relYr
UNWIND relYr AS yr
RETURN mt, numT, yr
ORDER BY yr
RETURN mt, numT, collect(yr)
ORDER BY numT DESC
这是输出,按排序
-
发布年份升序,
标题使用次数降序:
╒════════════════════════════════════╤══════╤════════════════╕
│"mt" │"numT"│"collect(yr)" │
╞════════════════════════════════════╪══════╪════════════════╡
│"Dracula" │3 │[1931,1958,1992]│
├────────────────────────────────────┼──────┼────────────────┤
│"King Kong" │3 │[1933,1976,2005]│
├────────────────────────────────────┼──────┼────────────────┤
│"Alice in Wonderland" │3 │[1951,1999,2010]│
├────────────────────────────────────┼──────┼────────────────┤
│"Godzilla" │3 │[1954,1998,2014]│
├────────────────────────────────────┼──────┼────────────────┤
│"The Three Musketeers" │3 │[1973,1993,2011]│
├────────────────────────────────────┼──────┼────────────────┤
│"Carrie" │3 │[1976,2002,2013]│
├────────────────────────────────────┼──────┼────────────────┤
│"Beauty and the Beast" │3 │[1991,2009,2014]│
├────────────────────────────────────┼──────┼────────────────┤
│"The Kid" │2 │[1921,2000] │
├────────────────────────────────────┼──────┼────────────────┤
│"Metropolis" │2 │[1927,2001] │
├────────────────────────────────────┼──────┼────────────────┤
│"Frankenstein" │2 │[1931,1994] │
...
【讨论】:
以上是关于Neo4j - 订购作为中间结果一部分的列表的主要内容,如果未能解决你的问题,请参考以下文章
作为 dplyr 管道的一部分,将中间输出分配给 temp 变量