Как посчитать частоту строк в массиве (cypher, neo4j) - PullRequest
0 голосов
/ 01 октября 2019

У меня есть массив строк, и я хочу подсчитать, сколько раз одна строка найдена в массиве.

Например:

["Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Gone with the Wind", "Gone with the Wind", "Gone with the Wind", "Gone with the Wind",""Shopaholic to the Stars (Shopaholic, #7)"", "The Farm", "The Farm", "Men Explain Things to Me", "The Valley of Fear", " The Fellowship of the Ring", " The Fellowship of the Ring", " The Fellowship of the Ring", " The Fellowship of the Ring", " The Fellowship of the Ring", "Mastering the Art of French Cooking", "Play With Me", "Play With Me", "Play With Me", "The Perfect Play", "The Perfect Play", "The Perfect Play", "Dream a Little Dream", "Natural Born Charmer", "Collected Poems", "The Friend Zone"]

Я хочу вернуть имякнига и сколько раз появляется в массиве.

Например:

  • Гарри Поттер и Орден Феникса - 5
  • Братство Кольца- 1

и т. Д. *

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Библиотека процедур APOC предлагает вспомогательные функции коллекции , которые могут быть полезны здесь, в частности apoc.coll.occurrences():

Предполагается, что вы передаете параметры и $bookToFind - это строка книги, которую вы ищете, а $ bookList - это список книг (хотя это может быть где-то из вашего графика), который вы можете использовать:

RETURN apoc.coll.occurrences($bookList, $bookToFind) as occurrences

Альтернативно, если вы хотитечтобы получить частоту всех книг, а не только определенной, вы можете использовать apoc.coll.frequencies() в коллекции, которая возвращает вам список карт, каждая из которых состоит из item и count этого элемента. в списке.

1 голос
/ 01 октября 2019

Вы можете использовать UNWIND, а затем агрегировать с помощью счетчика:

UNWIND ["Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Harry Potter and the Order of the Phoenix", "Gone with the Wind", "Gone with the Wind", "Gone with the Wind", "Gone with the Wind","Shopaholic to the Stars (Shopaholic, #7)", "The Farm", "The Farm", "Men Explain Things to Me", "The Valley of Fear", " The Fellowship of the Ring", " The Fellowship of the Ring", " The Fellowship of the Ring", " The Fellowship of the Ring", " The Fellowship of the Ring", "Mastering the Art of French Cooking", "Play With Me", "Play With Me", "Play With Me", "The Perfect Play", "The Perfect Play", "The Perfect Play", "Dream a Little Dream", "Natural Born Charmer", "Collected Poems", "The Friend Zone"]  as book

RETURN book, count(*) as book_cnt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...