0Pricing
Neo4j Graph Database Fundamentals · Lesson

Aggregation and Projections

Discover how to use aggregation functions (e.g., COUNT, SUM) and project data into custom formats for analysis.

Aggregation and Projections is a free Neo4j Graph Database Fundamentals lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Neo4j Graph Database Fundamentals learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Analyze Your Graph Data

Welcome to Aggregation and Projections! In graph databases, you often need to do more than just find data; you need to summarize it or shape it for analysis.

Aggregation means calculating a single result from multiple items, like counting all nodes or finding the average age. Projection is about selecting and formatting the data you want to see in your results.

Selecting Data with RETURN

The RETURN clause is how you specify exactly what data you want to see from your query. You can return nodes, relationships, or their specific properties. Let's add some example data first, then try a basic projection.

CREATE (p1:Person {name: 'Alice', age: 30})
CREATE (p2:Person {name: 'Bob', age: 25})
CREATE (p3:Person {name: 'Charlie', age: 30})
CREATE (m1:Movie {title: 'Inception', releaseYear: 2010})
CREATE (m2:Movie {title: 'Dunkirk', releaseYear: 2017})
CREATE (m3:Movie {title: 'Interstellar', releaseYear: 2014})

MATCH (p:Person)
RETURN p.name, p.age

Customizing Output with AS

The default property names might not always be clear in your results. The AS keyword lets you rename returned items to make your query output more readable and descriptive. This is part of projection.

MATCH (m:Movie)
RETURN m.title AS FilmTitle, m.releaseYear AS YearReleased

Counting All Items with COUNT(*)

Aggregation functions help you summarize data. One of the most common is COUNT(*), which tells you the total number of items (nodes, relationships, or paths) found by your MATCH pattern.

MATCH (p:Person)
RETURN COUNT(*) AS TotalPeopleCount

Counting Unique Values

What if you only want to count the unique values for a specific property? Use COUNT(DISTINCT variable.property). This is great for finding how many different ages, titles, or categories exist in your graph.

MATCH (p:Person)
RETURN COUNT(DISTINCT p.age) AS UniqueAgesCount

Summing and Averaging Numbers

For numeric properties, you can calculate sums and averages. SUM() adds up all values, and AVG() computes their mean. These functions are very powerful for numerical analysis.

MATCH (p:Person)
RETURN SUM(p.age) AS TotalAgeSum, AVG(p.age) AS AverageAge

Finding Extremes with MIN/MAX

The MIN() and MAX() functions let you find the smallest and largest values for a property within your matched data. This is useful for identifying outliers or understanding data ranges.

MATCH (p:Person)
RETURN MIN(p.age) AS YoungestPersonAge, MAX(p.age) AS OldestPersonAge

Grouping into Lists with COLLECT

The COLLECT() function gathers all values of a specified property into a list. This is often used with grouping (which we'll cover later) but can also simply return all collected items in a list.

MATCH (p:Person)
RETURN COLLECT(p.name) AS AllPersonNames

Structuring Results with Maps

You can project complex, structured data using map projections. This allows you to create custom objects (maps) in your results, combining multiple properties and even calculated values into a single output column.

MATCH (p:Person)
RETURN {fullName: p.name, yearsOld: p.age, isAdult: p.age >= 18} AS PersonSummary

Quick Aggregation & Projection Check

Let's test your understanding of Cypher aggregation and projection. Choose all statements that correctly apply these concepts.

Recap: Aggregating & Projecting

Great job! You've learned how to summarize and shape your graph data using Cypher.

  • Projections with RETURN allow you to select specific data, rename it with AS, or create structured maps.
  • Aggregation functions like COUNT(), SUM(), AVG(), MIN(), MAX(), and COLLECT() help you analyze and summarize large datasets into meaningful insights.

These techniques are fundamental for extracting valuable information from your Neo4j graphs!

Frequently asked questions

Is the “Aggregation and Projections” lesson free?

Yes — the full text of “Aggregation and Projections” is free to read here on the web, and the Neo4j Graph Database Fundamentals course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Neo4j Graph Database Fundamentals course, upgrade to CoddyKit PRO.

What will I learn in “Aggregation and Projections”?

Discover how to use aggregation functions (e.g., COUNT, SUM) and project data into custom formats for analysis. You practise Neo4j Graph Database Fundamentals with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Neo4j Graph Database Fundamentals?

No prior experience is required. Neo4j Graph Database Fundamentals on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Aggregation and Projections” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Neo4j Graph Database Fundamentals lesson?

Yes. Every Neo4j Graph Database Fundamentals lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Filtering and Ordering Results
  2. Aggregation and Projections
  3. Updating and Deleting Graph Data
  4. Combining Queries with WITH and UNION
← Back to Neo4j Graph Database Fundamentals