Вы можете добавить еще одно условие соответствия узла в свой запрос
MATCH (n:Number)-[:Amount]->(a:CRIME)-[:From]->(b:DISTRICT) RETURN a,b,n;
Если вы используете это в любом реальном случае / проекте, вам нужно подумать о модели данных, которую вы используете(как предложено @Tomaz).
РЕДАКТИРОВАТЬ:
Я пробовал выше запрос на моем ноутбуке, и он дает мне ожидаемый результат.
Я предлагаюВы отделяете запрос загрузки данных и возвращаете запрос, потому что каждый раз, когда вы запускаете этот запрос, вы дублируете половину данных.
Вы использовали предложение create, которое снова создает узлы Crime и Number каждый раз, когда вы выполняете этот запрос.
Удалить существующие данные:
MATCH (n:Number),(a:CRIME),(b:DISTRICT) DETACH DELETE a,b,n;
Загрузить данные
LOAD CSV FROM {path} AS Line
MERGE (district:DISTRICT { Name: Line[1]})
CREATE (crime:CRIME { Name: Line[0]})
CREATE (number:Number{Name:toInteger(Line[2])})
CREATE(number)-[:Amount]->(crime)-[:From]->(district);
Получить результат:
MATCH (n:Number)-[:Amount]->(a:CRIME)-[:From]->(b:DISTRICT) RETURN a,b,n;