Во-первых, извините за мой английский. Я моделирую DB железной дороги в neo4j. Я хочу связать станцию в том порядке, который связан железной дорогой, используя столы столов. Каждой остановке принадлежит «стоп-последовательность», которая, к сожалению, не похожа на 1,2,3 (не всегда), но только прогрессивно, как 1,3,4,6. Я написал этот запрос, который для описанной проблемы не работает всегда.Агрегативный запрос в neo4j
MATCH (a:Station)-[:stop]->(c:Stops_times)-[:trip]->(z:Trips)<-[:trip]-(d:Stops_times)<-[:stop]-(b:Station) WHERE toint(c.stop_sequence)=toint(d.stop_sequence)+1 CREATE (a)-[s:next]->(b)
Чтобы найти правильный «следующий» мне нужен запрос, похожий на этот:
MATCH (a:Station)-[:stop]->(c:Stops_times)-[:trip]->(z:Trips)<-[:trip]-(d:Stops_times)<-[:stop]-(b:Station) WITH c as c, d as d, MIN(d.stop_sequence) as min_ WHERE min_>c.stop_sequence CREATE UNIQUE (a)-[s:next]->(b)
поэтому для каждой остановке, я должен нашел минимальный «stop_sequence» между высшим, чем «stop_sequence» остановки, где я хочу найти следующий
Спасибо, ваш запрос именно то, что мне нужно! Теперь у меня есть некоторые проблемы с резервированием (связанные станции, у которых также есть промежуточные станции), но я думаю, что я могу справиться. Вы были очень добры. –