db2 分组前几条数据,分组取最后几条数据 db2
程序员文章站
2022-06-07 10:54:19
...
项目中需要分组取某个值最近的前2条数据
比如表
a(id,name,num)
数据
1 a 1
2 a 1
3 a 3
4 b 1
5 b 6
6 b 5
7 b 7
需求 :已知参数 id 为2,6
查询出相同name,最接近num的前2个的数据
结果:
1 a 1
2 a 1
4 b 1
6 b 5
------------
思路
1、排序并加入分组行号(列a)
2、加入当前id分组行号(列b)
3、根据分组行号比较
模拟过程
1、结果
1 a 1 1
2 a 1 2
3 a 3 3
4 b 1 1
6 b 5 2
5 b 6 3
7 b 7 4
2、结果 (id=2的行号是2,id=6的行号也是2)
1 a 1 1 2
2 a 1 2 2
3 a 3 3 2
4 b 1 1 2
6 b 5 2 2
5 b 6 3 2
7 b 7 4 2
3、通过列a和列b
条件 列a<=列b and 列a>=列b-2
结果出来:
1 a 1
2 a 1
4 b 1
6 b 5
比如表
a(id,name,num)
数据
1 a 1
2 a 1
3 a 3
4 b 1
5 b 6
6 b 5
7 b 7
需求 :已知参数 id 为2,6
查询出相同name,最接近num的前2个的数据
结果:
1 a 1
2 a 1
4 b 1
6 b 5
------------
思路
1、排序并加入分组行号(列a)
2、加入当前id分组行号(列b)
3、根据分组行号比较
模拟过程
1、结果
1 a 1 1
2 a 1 2
3 a 3 3
4 b 1 1
6 b 5 2
5 b 6 3
7 b 7 4
2、结果 (id=2的行号是2,id=6的行号也是2)
1 a 1 1 2
2 a 1 2 2
3 a 3 3 2
4 b 1 1 2
6 b 5 2 2
5 b 6 3 2
7 b 7 4 2
3、通过列a和列b
条件 列a<=列b and 列a>=列b-2
结果出来:
1 a 1
2 a 1
4 b 1
6 b 5
上一篇: 通俗易懂synchronized中偏向锁到重量级锁
下一篇: Mybatis系列(六)接口式编程