Следующие примеры предполагают следующую структуру графа.


Рис. 10.5 Граф

10.5.2 COUNT

COUNT используется для подсчёта числа строк. COUNT может использоваться в двух формах — COUNT(*), которая как раз подсчитывает число сопоставимых строк, и COUNT(<идентификатор>), которая подсчитывает число не-NULL значений в <идентификаторе>.

10.5.2.1 Число узлов

Чтобы подсчитать число узлов, например, узлов, связанных с одним узлом, вы можете использовать count(*).

Запрос

MATCH (n { name: 'A' })-->(x)
RETURN n, count(*)

возвращает стартовый узел и число, связанных с ним узлов.

Таблица 10.47 Результат

ncount(*)
Node[1]{name:"A",property:13}3

10.5.2.2 Подсчёт групп типов связей

Чтобы подсчитать группы типов связей, верните типы и пересчитайте их с помощью count(*).

Запрос

MATCH (n { name: 'A' })-[r]->()
RETURN type(r), count(*)

возвращает типы связей и их количество в группе.

Таблица 10.48 Результат

type(r)count(*)
"KNOWS"3

10.5.2.3 Подсчет сущностей

Вместо подсчёта числа результирующих строк с помощью count(*), возможно, более выразительным будет включить имя идентификатора, о котором идёт речь.

Запрос

MATCH (n { name: 'A' })-->(x)
RETURN count(x)

вернёт число узлов, связанных со стартовым узлом.

Таблица 10.49 Результат

count(x)
3

10.5.2.4 Подсчёт не-null значений

Вы можете подсчитать не-null значения при помощи count(<идентификатор>).

Запрос

MATCH (n:Person)
RETURN count(n.property)

вернёт число связанных узлов с установленным свойством property.

Таблица 10.50 Результат

count(n.property)
3

Предыдущая | Следующая