Следующие примеры предполагают следующую структуру графа.
Рис. 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 Результат
n | count(*) |
---|---|
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 |