2013-08-09 4 views
0

J'ai besoin de quatre comptes différents: le nombre total de résultats, puis le nombre de résultats dans trois catégories. Par exemple, si j'ai quatre élèves et que je veux qu'ils soient classés par année, je veux: (1) le nombre total d'élèves, (2) le nombre total d'élèves en première année, (3) le nombre total d'élèves en classe 2, (4) le nombre total d'élèves en 3e année. Si j'ai des nœuds d'étudiant où s.grade = 1, s.grade = 1, s.grade = 2, et s.grade = 3, y a-t-il un moyen de obtenir un résultat qui ne renvoie que ce que je veux et aucune autre information correctement?Comment filtrer les résultats et les compter dans Neo4j Cypher?

Répondre

1

Cela ne comprend pas le nombre total d'étudiants, mais voici une façon que vous pouvez agréger le nombre d'élèves dans chaque catégorie:

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 

En fonction de votre schéma/structure est, vous aurez probablement besoin de filtrer n pour être seulement des étudiants.