2012-12-08 55 views
0

我有複雜的查詢問題; 這裏是我的暗號查詢:neo4j中如何在密碼查詢中有兩個聚合?

params.put("query", "name:*"); 
ExecutionResult result = engine.execute("start n=node:groups({query}) 
match n<-[:Members_In]-x 
with n,count(distinct x) as numberOfUsers 
where numOfUsers>avg(numOfUsers) 
return n.name,numOfUsers ", params); 

n是組名,x是各組的用戶。 我如何讓平均用戶數量與平均用戶數量進行比較? 我可以獲得羣組用戶的平均數量,然後返回比平均用戶數量多的羣組嗎? 謝謝。

回答

2

我不認爲你可以在同一個查詢中得到平均值和計數值,而無需重新啓動。所以這裏是我的嘗試:

start n=node:groups({query}) 
match n<-[:Members_In]-x 
with n, count(distinct x) as cnt 
with avg(cnt) as av 
start n=node:groups({query}) 
match n<-[:Members_In]-x 
with n, av, count(distinct x) as numOfUsers 
where numOfUsers > av 
return n.name, numOfUsers, av 
+0

謝謝,它很有用。 – user1878364