Neo4J - 如何通过 WHERE 子句和聚合来限制结果

Neo4J - How to Limit Results by WHERE Clause and AGGREGATION

我正在使用 Neo4J 并且 运行 查询获取 英格兰南部 的大学,这是一所 体育大学 .

但是我在限制结果时遇到了问题。

我想要的是将结果限制为仅显示 LIKES 最多的大学(在类型列中)。

例如,在下面的结果中它应该只显示 Portsmouth University,而不是 Brighton University

所以,我只想要三行显示 WENT_TO,喜欢和不喜欢的大学的最大喜欢。

这就是我要做的。我希望它有效,我还没有测试过。它应该 return 只有一行,因为我把所有的计数都放在一张地图上(也许你必须添加 DISTINCT)。

MATCH (sportUni:Speciality {title: "Sporty University"})-[:SPECIALISES_IN]-(uni)-[:IS_LOCATED_IN_THE]-(locality:Region {title: "South England"}),
(uni)-[l:LIKES]-(),
(uni)-[d:DISLIKES]-(),
(uni)-[w:WENT_TO]-()
WITH DISTINCT sportUni, locality, uni, count(l) as likes, count(d) AS dislikes, count(w) AS wentto
ORDER BY likes DESC
RETURN head(collect(sportUni)) AS sportUni,
head(collect(locality)) AS locality,
head(collect(uni)) AS uni,
head(collect({LIKES: likes, DISLIKES: dislikes, WENT_TO: wentto})) AS count

编辑:语法更正

EDIT2: 现在,通过一些研究,我改编了 ,它适用于一个小样本查询。虽然,看起来不太优雅。