gpt4 book ai didi

Neo4j 将多条线聚合成一个 map

转载 作者:行者123 更新时间:2023-12-02 08:27:34 25 4
gpt4 key购买 nike

我有以下 Cypher 脚本:

MATCH (sy:SchoolYear)<-[:TERM_OF*]-()<-[:DAY_OF]-(d:Day)
WHERE sy.year = 2015
OPTIONAL MATCH (d)<-[:START]-(e:Enrollment)-[:AT]->(s:School)
RETURN d.date, s.abbreviation, count(e)
ORDER BY d.date

这为我提供了我想要的范围内的所有日期,并返回在该日期为每所学校注册的学生人数,或者为空。我唯一的问题是不同的学校在不同的线路上,导致一个日期有多个线路。我想每个日期将它们汇总成一行。

我得到:

1/1/2000, School 1, 5
1/1/2000, School 2, 10
1/2/2000, null, null
1/3/2000, School 1, 6

我想要什么:

1/1/2000, {School 1 : 5, School 2: 10}
1/2/2000, null
1/3/2000, {School 1: 6}

我试过:

MATCH (sy:SchoolYear)<-[TERM_OF*]-()<-[:DAY_OF]-(d:Day)
WHERE sy.year = 2015
OPTIONAL MATCH (d)<-[:START]-(e:Enrollment)-[:AT]->(s:School)
WITH d, s.abbreviation as abb, count(e) as enr
RETURN d.date, {abb:enr}
ORDER BY d.date

我该怎么办?

最佳答案

以下是我如何将每个学校聚合成一张 map ,然后将这些 map 聚合成一个集合

MATCH (sy:SchoolYear)<-[TERM_OF*]-()<-[:DAY_OF]-(d:Day)
WHERE sy.year = 2015
OPTIONAL MATCH (d)<-[:START]-(e:Enrollment)-[:AT]->(s:School)
WITH d, s, count(e) as students
RETURN d.date, collect({name:s.abbreviation, students:students})
ORDER BY d.date

关于Neo4j 将多条线聚合成一个 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30716388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com