2013-08-09 4 views
0

Мне нужно четыре разных подсчета: общее количество результатов, а затем количество результатов в трех категориях. Например, если у меня есть четыре студента, и я хочу, чтобы они отсортировались по классам, я хочу: (1) общее количество студентов, (2) общее число учащихся в 1-м классе, (3) общее количество учащихся в классе 2, (4) общее количество учащихся в классе 3. Если у меня есть узлы учеников, где s.grade = 1, s.grade = 1, s.grade = 2 и s.grade = 3, есть ли способ получить результат, который возвращает только то, что я хочу, и никакой другой информации правильно?Как фильтровать результаты, а затем подсчитывать их в Neo4j Cypher?

ответ

1

Это не включает в себя общее число студентов, но вот один способ, которым Вы могли бы агрегировать количество студентов в каждом классе:

START n=node(*) 
WHERE HAS(n.grade) AND n.grade > 0 AND n.grade <= 3 
RETURN DISTINCT n.grade AS grade, count(n.grade) AS count 

В зависимости от того, что ваша схема/структура, вы, вероятно, необходимо фильтровать n, чтобы быть только учениками.

Смежные вопросы