gpt4 book ai didi

sql - 打印玩家和他(她)的邻居的排名

转载 作者:搜寻专家 更新时间:2023-10-30 19:43:38 26 4
gpt4 key购买 nike

有一张表存储了每个游戏玩家的最高分:

select * from TMP_TABLE

结果:

USERID     SCORE
---------- -----------
aaa 10
bbb 30
ccc 50
ddd 90
eee 80
fff 50
ggg 20
hhh 40
iii 50

(9 row(s) affected)

好的,现在我要显示每个玩家的排名:

select *,r=rank() over(order by score desc) from TMP_TABLE 

结果

USERID     SCORE       r
---------- ----------- --------------------
ddd 90 1
eee 80 2
fff 50 3
ccc 50 3
iii 50 3
hhh 40 6
bbb 30 7
ggg 20 8
aaa 10 9

(9 row(s) affected)

现在我想打印用户'bbb'的排名和他(她)的邻居玩家的名字和分数,像这样:

USERID     SCORE       r
---------- ----------- --------------------
hhh 40 6
bbb 30 7
ggg 20 8
(3 row(s) affected)

但是,我不知道哪个查询语句显示了这个结果。当然,还要考虑处理性能。请帮我。谢谢。

最佳答案

如果您的RDBMS 支持Common Table Expression,这是我的第一次尝试,

WITH ranking AS
(
SELECT *,
RANK() OVER (ORDER BY score DESC) userRank
FROM TableName
)
SELECT *
FROM ranking
WHERE userRank BETWEEN
(SELECT userRank - 1 FROM ranking WHERE userID = 'bbb') AND
(SELECT userRank + 1 FROM ranking WHERE userID = 'bbb')

关于sql - 打印玩家和他(她)的邻居的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009410/

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