Neo4j 筛选已筛选的密码查询结果

Neo4j 筛选已筛选的密码查询结果,neo4j,cypher,Neo4j,Cypher,嗨,这是我当前的查询,我想“重新筛选”: START movie = node(*) MATCH user-[:LIKE]->category-[:SIMILAR*0..3]-()<-[:TAGGED]->movie WHERE user.name = "current_user" WITH DISTINCT movie, user, category RETURN user.name, category.name, ID(movie), movie.name ORDER

嗨,这是我当前的查询,我想“重新筛选”:

START movie = node(*)
MATCH user-[:LIKE]->category-[:SIMILAR*0..3]-()<-[:TAGGED]->movie
WHERE user.name = "current_user"

WITH DISTINCT movie, user, category

RETURN user.name, category.name, ID(movie), movie.name
ORDER BY movie.name;
我想
按计数分组(sugg)作为category\u COUNT
来提取:

+--------------+----------------+-----------+-------------------------+
| user.name    | category_count | ID(movie) | movie.name              |
+--------------+----------------+-----------+-------------------------+
| current_user | 3              | 14        | movie_c_and_d_and_e     |
| current_user | 2              | 9         | movie_of_a_and_b_and_b1 |
| current_user | 2              | 13        | movie_of_d_and_e        |
| current_user | 1              | 10        | movie_of_b2_first       |
| current_user | 1              | 11        | movie_of_b2_second      |
| current_user | 1              | 12        | movie_of_c              |
+--------------+----------------+-----------+-------------------------+
我怎样才能做到这一点

类似问题: -

更新
以下是工作结果(带演示:):

START movie=node(*)
匹配用户-[:LIKE]>category-[:相似*0..3]()电影
其中user.name=“当前用户”
对于不同的电影,将计数(电影)作为类别的类别\u计数,将电影、收藏(category.name)作为类别
返回类别\u计数,ID(电影),movie.name,分类
按类别的订单\u计数说明;
开始电影=节点(*)
匹配用户-[:LIKE]>category-[:相似*0..3]()电影
其中user.name=“当前用户”
具有不同的电影、用户、类别
返回user.name、count(category.name)作为category\u count、ID(movie)、movie.name
按类别排序\u计数说明,movie.name asc

你的解决方案可行,回答了我的问题,我的问题比我提出的要复杂一些。。我发现可以使用如下语句放置相应的内容:START movie=node(*)MATCH user-[:like]>category-[:simular*0..3]()movie其中user.name=“current\u user”具有不同的movie,category具有COUNT(movie)作为category\u COUNT的category,movie,collect(category.name)作为category返回category\u COUNT,ID(movie),movie.name,按类别分类的顺序\u count DESC;因此,我可以有效地“重新过滤”我的结果。非常感谢。是的,这就是with的用途,您还可以根据with和AGGRATE应用订单和限额,然后在稍后对集合进行筛选。也许可以将更新后的查询放在您的问题中,以便更好地格式化和可读。
+--------------+----------------+-----------+-------------------------+
| user.name    | category_count | ID(movie) | movie.name              |
+--------------+----------------+-----------+-------------------------+
| current_user | 3              | 14        | movie_c_and_d_and_e     |
| current_user | 2              | 9         | movie_of_a_and_b_and_b1 |
| current_user | 2              | 13        | movie_of_d_and_e        |
| current_user | 1              | 10        | movie_of_b2_first       |
| current_user | 1              | 11        | movie_of_b2_second      |
| current_user | 1              | 12        | movie_of_c              |
+--------------+----------------+-----------+-------------------------+
START movie = node(*)
MATCH user-[:LIKE]->category-[:SIMILAR*0..3]-()<-[:TAGGED]->movie
WHERE user.name = "current_user"
WITH DISTINCT movie, category WITH COUNT(movie) AS category_count, movie, collect(category.name) as categorized
RETURN category_count, ID(movie), movie.name, categorized
ORDER BY category_count DESC;
START movie = node(*) 
MATCH user-[:LIKE]->category-[:SIMILAR*0..3]-()<-[:TAGGED]->movie 
WHERE user.name = "current_user" 
WITH DISTINCT movie, user, category 
RETURN user.name, count(category.name) as category_count, ID(movie), movie.name 
ORDER BY category_count desc, movie.name asc