apoc.agg.maxItemsFunction
| Syntax | 
 | ||
| Description | Returns a  | ||
| Arguments | Name | Type | Description | 
| 
 | 
 | A value to be aggregated. | |
| 
 | 
 | The value from which the max is selected. | |
| 
 | 
 | The limit on the number of items returned. The default is:  | |
| Returns | 
 | ||
Usage examples
The examples in this section are based on the following sample graph of people and their dates of birth:
CREATE (:Person {name: "Christopher Nolan", dateOfBirth: date("1970-07-30")});
CREATE (:Person {name: "Tom Cruise", dateOfBirth: date("1962-07-03")});
CREATE (:Person {name: "Nicole Kidman", dateOfBirth: date("1967-06-20")});
CREATE (:Person {name: "Matt Damon", dateOfBirth: date("1970-10-08")});
CREATE (:Person {name: "Jennifer Connelly", dateOfBirth: date("1970-12-12")});You can collect the people that have the maximal year of birth by running the following query:
MATCH (p:Person)
WITH apoc.agg.maxItems(p, p.dateOfBirth.year) AS maxItems
RETURN maxItems.value AS value, maxItems.items AS items;| value | items | 
|---|---|
| 1970 | [(:Person {name: "Christopher Nolan", dateOfBirth: 1970-07-30}), (:Person {name: "Matt Damon", dateOfBirth: 1970-10-08}), (:Person {name: "Jennifer Connelly", dateOfBirth: 1970-12-12})] | 
You can set the groupLimit (3rd parameter) to set a limit on the number of items returned:
MATCH (p:Person)
WITH apoc.agg.maxItems(p, p.dateOfBirth.year, 2) AS maxItems
RETURN maxItems.value AS value, maxItems.items AS items;| value | items | 
|---|---|
| 1970 | [(:Person {name: "Christopher Nolan", dateOfBirth: 1970-07-30}), (:Person {name: "Matt Damon", dateOfBirth: 1970-10-08})] |