我有两种类型的节点(游戏玩家)和一种关系(已玩)。PLAYED关系就是拥有一个属性“点”。
样本数据:
玩家(309274)获得10分
玩家(309275)获得20分
玩家(309276)获得30分
玩家(309277)获得40分
玩家(309278)获得50分
我想计算一个玩家的等级309278 即密码查询中的 5。有人可以帮我生成密码查询吗?
MATCH (p:Player)-[pl:PLAYED]->(:Game {id:{game-id}})
RETURN p.name
ORDER BY pl.score desc
那么行号就是您的排名,您的客户可以轻松计算
获得一定的等级:
MATCH (p:Player)-[pl:PLAYED]->(:Game {id:{game-id}})
RETURN p.name
ORDER BY pl.score desc
SKIP 4 LIMIT 1
要计算排名,您可能会这样做(效率不高):
MATCH (p:Player)-[pl:PLAYED]->(:Game {id:{game-id}})
WITH p,pl
ORDER BY pl.score desc
// create a a collection
WITH collect(p) as players
UNWIND reduce(acc=[],idx in range(0,size(players)-1) |
acc + [idx+1,players[idx]]) as player_rank
RETURN player_rank
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)