gpt4 book ai didi

MYSQL 如何获取从最高排名到最高范围的行

转载 作者:行者123 更新时间:2023-11-29 08:16:36 25 4
gpt4 key购买 nike

我有一个表代理:

ID rank
1 300
2 302
3 304
4 305<--the highest number
5 301
6 260
7 301
...

您知道如何将所有顶部行从最高排名 (4=>305) 获取到排名=最高排名-范围的行吗? 范围由用户定义(例如= 3)。因此,在此示例中,它将是排名为 305 到 302 的行(ID:2、3、4)。有没有更好的方法:

SELECT ID FROM `agents` WHERE rank >= (SELECT rank FROM `agents` ORDER BY rank DESC LIMIT 1)-3

最佳答案

假设我正确理解了你的意思...

 CREATE TABLE agents
(ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,rank INT NOT NULL
);

INSERT INTO agents VALUES
(1 ,300),
(2 ,302),
(3 ,304),
(4 ,305),
(5 ,301),
(6 ,260),
(7 ,301);

SELECT x.*
FROM agents x
JOIN (SELECT MAX(rank) max_rank FROM agents) y
ON y.max_rank-3 <= x.rank;
+----+------+
| ID | rank |
+----+------+
| 2 | 302 |
| 3 | 304 |
| 4 | 305 |
+----+------+

由 BrokenHeart 提供的替代答案已被删除。但这是一个很好的答案,所以我将其包含在下面......

 SELECT id, rank FROM `agents` 
where rank >= ((select MAX(rank) FROM `agents`)-13);

关于MYSQL 如何获取从最高排名到最高范围的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495121/

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