Как посчитать шифровые метки с определенным условием? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть графовая база данных с информацией о разных компаниях и их дочерних компаниях. Теперь моя задача - отобразить структуру компании. Этого я добился с помощью d3 и вертикального дерева.

Но дополнительно я должен написать сводную статистику о компании, которая отображается в данный момент. Компании можно выбрать из выпадающего списка, который динамически выбирает эти данные с помощью вызова AJAX.

Я должен написать в том же HTML краткое резюме, например:

Общее количество дочерних компаний для компании A: 300 Компании в корпоративных гаванях: 45% Компании в налоговых убежищах 5%

Моя база данных состоит из двух узлов: компании и страны, а в стране есть метки, такие как CH и TH.

CREATE (:TH:Country{name:'Nauru', capital:'Yaren', lng:166.920867,lat:-0.5477})
WITH 1 as dummy MATCH (a:Company), (b:Country) WHERE a.name=‘CompanyA ' AND b.name='Netherlands' CREATE (a)-[:IS_REGISTERED]->(b)

Так, как я могу найти количество дочерних компаний CompanyA, которые зарегистрированы в корпоративных и налоговых убежищах? И как передать эту информацию дальше в html

Я обнаружил разные зашифрованные запросы для запроса всех меток, а также apocalyptic.stats, но это не позволяет мне фильтровать материнскую компанию. Я ценю помощь.

enter image description here

1 Ответ

0 голосов
/ 05 апреля 2019

Шифр ​​хорош, потому что вы пишете запрос почти на естественном языке (приведенный ниже запрос может быть неправильным - не проверял, но идея ясна):

MATCH (motherCompany:Company {name: 'CompanyA'})-[:HAS_SUBSIDIARY]->(childCompany:Company) 
WITH motherCompany, 
     childCompany
MATCH (childCompany)-[:IS_REGISTERED]->(country:Country)
WITH motherCompany, 
     collect(labels(country)) AS countriesLabels
WITH motherCompany, 
     countriesLabels,
     size([countryLabels IN countriesLabels WHERE 'TH' IN countryLabels ]) AS inTaxHeaven
RETURN motherCompany, 
       size(countriesLabels) AS total,
       inTaxHeaven,
       size(countriesLabels) - inTaxHeaven AS inCorporateHeaven
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...