1
私は、学生と評価を関連付けるグラフがあるとします。neo4j cypher - 2つのグループ化されたクエリ(カラム1 /カラム2)の結果を分割する
(:student)-[:assessed_on]->(:assessment)
評価ノードには、その評価で学生がどのように実行したかを示すプロパティが含まれています。たとえば、
学生ノードには、学生が出席する学校を示すプロパティが含まれています。例えば、
school_name: 'school_of_rock'
は、私はこのクエリを使用することができる分子を取得するには50
上で獲得し、各学校からの学生の割合を返すように望んでいたとします
MATCH (s:student)-[:assessed_on]->(a:assessment)
WHERE a.math_score>50
RETURN s.school_name as school, count(a) as numerator
ORDER BY school
school numerator:
------ ---------
school_of_rock 24
school_of_jazz 40
school_of_country 12
を取得するには分母私は同じことをすることができますが、合計を得るためにWHERE句を取り出して返します:
school denominator:
------ ---------
school_of_rock 48
school_of_jazz 50
school_of_country 48
しかし私は1つのクエリで探していることは(単に分子/分母である)以下の結果である:私はこれを試してみました
school result:
------ ---------
school_of_rock .5
school_of_jazz .8
school_of_country .25
:
MATCH (s:student)-[:assessed_with]->(a:assessment)
WHERE a.math_score>50
WITH s.school_name as school, count(a) as numerator
MATCH (s:student)-[:assessed_with]->(a:assessment)
RETURN school, numerator/count(a) as proportion_above_50
しかし、分子はときに正しいされていません私は明らかに何か間違っているので、クエリを組み合わせます。どんな助けもありがとう。
これは私が探していたものです。素晴らしい。どうもありがとうございました。 – campo