apoc.agg.nth

Details

Syntax

apoc.agg.nth(value, offset)

Description

Returns the nth value in the given collection (to fetch the last item of an unknown length collection, -1 can be used).

Arguments

Name

Type

Description

value

ANY

A value to be aggregated.

offset

INTEGER

The index of the value to be returned, or -1 to return the last item.

Returns

ANY

Usage examples

The examples in this section are based on the following sample graph:

CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (TomH:Person {name:'Tom Hanks', born:1956})

CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (TheMatrixReloaded:Movie {title:'The Matrix Reloaded', released:2003, tagline:'Free your mind'})
CREATE (TheMatrixRevolutions:Movie {title:'The Matrix Revolutions', released:2003, tagline:'Everything that has a beginning has an end'})
CREATE (YouveGotMail:Movie {title:"You've Got Mail", released:1998, tagline:'At odds in life... in love on-line.'})
CREATE (SleeplessInSeattle:Movie {title:'Sleepless in Seattle', released:1993, tagline:'What if someone you never met, someone you never saw, someone you never knew was the only someone for you?'})

CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix)
CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrixReloaded)
CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrixRevolutions)

CREATE (TomH)-[:ACTED_IN {roles:['Joe Fox']}]->(YouveGotMail)
CREATE (TomH)-[:ACTED_IN {roles:['Sam Baldwin']}]->(SleeplessInSeattle);
apoc.agg.nth
MATCH (p:Person)-[:ACTED_IN]->(movie)
WITH p, movie
ORDER BY p, movie.released
RETURN p.name AS person, apoc.agg.nth(movie, 1) AS nthMovie
Using Cypher’s OFFSET and LIMIT
MATCH (p:Person)
CALL (p) {
  MATCH (p)-[:ACTED_IN]->(movie)
  RETURN movie ORDER BY p, movie.released OFFSET 1 LIMIT 1
}
RETURN p.name AS person, movie AS nthMovie
Results
person nthMovie

"Keanu Reeves"

(:Movie {tagline: "Free your mind", title: "The Matrix Reloaded", released: 2003})

"Tom Hanks"

(:Movie {tagline: "At odds in life…​ in love on-line.", title: "You’ve Got Mail", released: 1998})