Ich habe eine Datenmenge, die etwa wie folgt aussieht:Wie Max() für eine Sammlung verwenden?
CREATE (n {name:'main', val:3}) -[:r]-> ({name:'sub1', val:2}), (n)-[:r]->({name:'sub2', val:1})
Nun, ich brauche den maximalen Wert für ‚val‘ für alle Knoten zu finden, die mit dem Knoten verbunden sind, genannt ‚main‘ (einschließlich ‚main‘ auch). Also, in diesem Fall ist die Antwort 3.
Da der Knoten ‚main‘ genannt keine untergeordneten Knoten haben kann, habe ich OPTIONAL MATCH
die untergeordneten Knoten zu finden, dann vereinen alle vals in eine Liste gefunden und rufen max()
drauf , etwa so:
MATCH (n {name:'main'})
OPTIONAL MATCH (n)-[:r]->(subs)
RETURN max(n.val + collect(subs.val))
aber das gibt die folgenden Fehler:
Type mismatch: expected Float or Integer but was Collection (line 3, column 18 (offset: 73)) "RETURN max(n.val + collect(subs.val))"
Was ist die richtige may diese Art von Problem zu lösen?