Преобразуйте SQL-запрос в Neo4j - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь преобразовать следующий запрос SQL в Neo4j, но не смог понять, как работать со встроенными запросами в Neo4j.

SQL-запрос:

with aux as ( -- Amount of citations select p.id, p.scientist_id, p.title, count(*) as citations from paper p join citation c2 on (p.id = c2.paper_id) group by 1,2,3 ) select id, name, min(h) as h_index from ( select c.id, c.name, aux1.title, aux1.citations, -- Replacing the use of analytical functions -- Eq. to: count(*) over (parition by c.id order by p.citations desc) ( select count(*) from aux aux2 where aux2.citations >= aux1.citations and aux2.scientist_id = aux1.scientist_id) as h from scientist c join aux aux1 on (c.id = aux1.scientist_id) ) where h >= citations group by id, name;

Этот запрос в основном извлекает h-индекс исследователя.Для этого мне сначала нужно ввести все статьи каждого автора и количество цитирований (статья).Это соответствует первому запросу «aux», который в Neo4j я написал так:

MATCH (p:Paper) - [w:WRITTEN_BY] -> (a:Author)
MATCH (p:Paper) - [c:CITED_BY] -> (p)
WITH count(c) as Citations
RETURN a.authorName, p.paperTitle, Citations

Как вы можете видеть, я уже получил предложение aux в Neo4j, но я не знаю, как продолжитьSQL выберите для извлечения окончательного числа ч.

Большое спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...