MATCH 語句 子類 COUNT

MATCH (uu:user)-[e:write]-(p:post)-[:postTo]->(f:forum) \
                   -> WHERE id(f) == "forum:0" \
                   -> WITH uu , p \
                   -> MATCH ()-[e:emoji]->(p:post) \
                   -> return id(p) , e.emoji , count(e.emoji)

+----------+---------+----------------+
| id(p)    | e.emoji | count(e.emoji) |
+----------+---------+----------------+
| "post:1" | 1203    | 1              |
| "post:0" | 1204    | 2              |
| "post:0" | 1203    | 1              |
+----------+---------+----------------+

但我想得到這個效果

| "post:1" | [1203]                     |       [1]       |
| "post:0" | [1204, 1203 ]          |       [2,1]    |

嘗試過 return id(p) , collect(e.emoji) , count(e.emoji)
| “post:0” | [1204, 1203, 1204] | 3 |

再嘗試
return id(p) , collect(e.emoji) , collect(count(e.emoji))

SemanticError: Aggregate function nesting is not allowed: `collect(count(e.emoji))’

可以等 count 结果有了之后,WITH 了再 aggregate

MATCH (uu:player)-[e:follow]->(p:player)-[:serve]->(f:team)
  WHERE id(f) == "team204"
  WITH p
MATCH ()-[e:follow]->(p:player)
WITH id(p) AS p, e.degree AS degree, count(e) AS count
RETURN p, collect(degree), collect(count)
(root@nebula) [basketballplayer]> """
                               -> MATCH (uu:player)-[e:follow]->(p:player)-[:serve]->(f:team)
                               ->   WHERE id(f) == "team204"
                               ->   WITH p
                               -> MATCH ()-[e:follow]->(p:player)
                               -> WITH id(p) AS p, e.degree AS degree, count(e) AS count
                               -> RETURN p, collect(degree), collect(count)
                               -> """
+-------------+------------------------------+------------------------------+
| p           | collect(degree)              | collect(count)               |
+-------------+------------------------------+------------------------------+
| "player104" | [83, 99]                     | [4, 4]                       |
| "player103" | [90]                         | [1]                          |
| "player138" | [99]                         | [1]                          |
| "player102" | [80, 90, 70]                 | [3, 3, 3]                    |
| "player100" | [55, 80, 75, 95, 70, 99, 90] | [10, 40, 10, 10, 10, 10, 10] |
| "player101" | [80, 50, 95, 99, 75]         | [5, 5, 5, 5, 5]              |
| "player125" | [99, 90, 95]                 | [4, 4, 8]                    |
| "player105" | [60, 99]                     | [2, 2]                       |
| "player114" | [90]                         | [9]                          |
| "player106" | [99]                         | [1]                          |
+-------------+------------------------------+------------------------------+
Got 10 rows (time spent 12.111ms/88.556792ms)

Thu, 19 Oct 2023 15:35:00 CST

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。