Prev |  | Next

## 15.17. With

The ability to chain queries together allows for powerful constructs. In Cypher, the `WITH` clause is used to pipe the result from one query to the next.

`WITH` is also used to separate reading from updating of the graph. Every sub-query of a query must be either read-only or write-only.

Graph

### 15.17.1. Filter on aggregate function results

Aggregated results have to pass through a `WITH` clause to be able to filter on.

Query

    START david=node(1)
    MATCH david--otherPerson-->()
    WITH otherPerson, count(*) as foaf
    WHERE foaf > 1
    RETURN otherPerson

The person connected to David with the at least more than one outgoing relationship will be returned by the query.

Result

otherPerson
1 row
0 ms
`Node[3]{name:"Anders"}`

### 15.17.2. Alternative syntax of WITH

If you prefer a more visual way of writing your query, you can use equal-signs as delimiters before and after the column list. Use at least three before the column list, and at least three after.

Query

    START david=node(1)
    MATCH david--otherPerson-->()
    ========== otherPerson, count(*) as foaf ==========
    SET otherPerson.connection_count = foaf

For persons connected to David, the `connection_count` property is set to their number of outgoing relationships.

Result

Properties set: 2
1 ms
`(empty result)`

Copyright © 2012 Neo Technology

Prev | Up | Next
| Home |