gpt4 book ai didi

neo4j - 如何在 Neo4j 中计算排名

转载 作者:行者123 更新时间:2023-12-05 00:22:41 25 4
gpt4 key购买 nike

enter image description here

我有两种类型的节点( 游戏和玩家 )和一种关系(已播放)。
玩过 关系是拥有一个属性“点”。
样本数据:
球员 (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

关于neo4j - 如何在 Neo4j 中计算排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29620450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com