Принимая средний рейтинг каждого жанра фильма в Neo4j - PullRequest
0 голосов
/ 06 октября 2019

Существует узел фильма, и в этом узле фильма есть три свойства: ratings, genre и releaseyear. Я бы хотел взять средний рейтинг каждого жанра. Как мне это сделать? Вот что у меня есть:

MATCH(m:Movie)
WHERE m.release_year < 2010
WITH collect(m.genre) as genre, avg(m.ratings) as rating
RETURN genre, rating
ORDER BY rating

1 Ответ

0 голосов
/ 07 октября 2019

Вы почти получили это, но ваш 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...