gpt4 book ai didi

Mysql 从第二列获取前 3 个值,然后转到第 1 列的下一个值

转载 作者:行者123 更新时间:2023-11-29 19:15:12 28 4
gpt4 key购买 nike

我得到了一张表,如下所示,是我执行的 SQL 的结果:

COL1  |     COL2
1 | 1
1 | 2
1 | 3
1 | 4
1 | 5
1 | 6
2 | 1
2 | 2
2 | 3
2 | 4
3 | 1
3 | 2
4 | 1
4 | 2
4 | 3
4 | 4

所以我想获取 COL2 的前 3 个值(即使没有 3 条记录,如 COL1 - 值 3),结果为:

COL1  |     COL2
1 | 1
1 | 2
1 | 3
2 | 1
2 | 2
2 | 3
3 | 1
3 | 2
4 | 1
4 | 2
4 | 3

最佳答案

使用BETWEEN应该有效:

select * from mytable 
where COL2 between 1 and 3
order by COL1, COL2;

工作演示:http://rextester.com/QIIZ51160

注意:如果每组中前 3 个值并不总是在 1 到 3 之间,则必须使用不同的方法。此查询将为您提供 COL1 中每个值的第二列中的前 3 个值:

select COL1, COL2, rank
from
(select COL1, COL2,
@rank := IF(@curr = COL1, @rank + 1, 1) AS rank,
@curr := COL1
FROM mytable
ORDER BY COL1, COL2
) ranked
where rank <= 3;

工作演示:http://sqlfiddle.com/#!9/605c7/1/0

关于Mysql 从第二列获取前 3 个值,然后转到第 1 列的下一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42766298/

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