2017-03-16 77 views
1

我有以下查詢來查找使用neo4j使用兩種關係AFFILIATE_TO和PAID(如下圖)的level1-20%,level2-10%,level3-5%的佣金。計算每個級別的收入-neo4j

with [20.0, 10.0, 5.0] as percents 
match (i:Instructor)-[r:AFFILIATE_TO*..3]->()-[:PAID]->(t:Payment) 
with i, percents[size(r) - 1] as percent, t 
with i, t.amount * percent/100.0 as cut 
return i.name as Name, sum(cut) as revenue 

這裏它返回每個教官的收入總和,是否有可能從這個query.ie計算個人收入,每個級別的收入?

我的意思的細節講師名稱,收入金額,20%的收入和10%的收入總和,5%的收入總和 enter image description here

回答

3

Cypher支架聚集或團體通過RETURN所有你交還鑰匙。所以如果你想要RETURN收入來自各個級別,你還得RETURN級別的大小,或者至少在WITH聲明中用groupby。

with [20.0, 10.0, 5.0] as percents 
match (i:Instructor)-[r:AFFILIATE_TO*..3]->()-[:PAID]->(t:Payment) 
with i, percents[size(r) - 1] as percent, t, size(r) - 1 as level 
with i, t.amount * percent/100.0 as cut,level 
return i.name as Name, sum(cut) as revenue,level 
+0

感謝您的reply.But我試圖得到這樣的導師姓名,收入金額,20%的收入和10%的收入總和,5%的收入總和值 – Shin

+1

@ShijinTR應該不難修改對此的查詢,您將需要在聯屬營銷節點上的變量,您不必執行SUM()操作,並且可以將百分比變量保留在範圍內,並將百分比返回給它(帶有可選的格式)。 (和關卡,如果你需要返回它,實際上可能只是大小(r),不需要從中減去) – InverseFalcon