Вы почти получили это, но ваш collect()
сбрасывает его. Чтобы агрегация avg()
рассчитывалась для каждого жанра, вам нужен каждый жанр в отдельной строке, а не в коллекции (то, что он сейчас вычисляет, является средним для всех этих фильмов независимо от жанра). Агрегирование выполняется по переменным неагрегирования, присутствующим в WITH или RETURN, где происходит агрегация:
MATCH(m:Movie)
WHERE m.release_year < 2010
WITH m.genre as genre, avg(m.ratings) as rating
RETURN genre, rating
ORDER BY rating