I wonder why this is considered an invalid use of aggregate functions in Neo4j's Cypher:
MATCH (p:Project)-[:EMPLOYS]-(n:Person) SET p.youngest = MIN(n.age);
While the following is considered a valid use case:
MATCH (p:Project)-[:EMPLOYS]-(n:Person) RETURN p.name, MIN(n.age) AS youngest;
How should I rewrite the first query to make it valid?
As for "why" your original Cypher attempt does not work, and the answer by @mah does work: Cypher only permits aggregation functions to be used in WITH
and RETURN
clauses.
A slight change to the query makes it work:
MATCH (p:Project)-[:EMPLOYS]-(n:Person)
WITH p, MIN(n.age) AS min_age
SET p.youngest = min_age;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With