已知表 ID为主键,如何根据seq连续数的 个数 分别编组,写到字段GROUPID
其中
seg 字段里的整数是"分段"的连续数
如果仅仅是1时,只有1,没有2及其他的整数,记作M1,
是1到2时,记作M2,
是1到3时,记作M3,
......
......
是1到6时,记作M6
......
......
是1到999时,记作M999
提问的代码上传不了,所以写在下面的 题主的回答里
已知表 ID为主键,如何根据seq连续数的 个数 分别编组,写到字段GROUPID,请专家答疑解惑
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- shinger126 2022-06-23 17:08关注
create table #t(ID int,seq int)
insert into #t
SELECT '1'ID ,'1'seq
UNION ALL SELECT '2' ,'2'
UNION ALL SELECT '3','1'
UNION ALL SELECT '4','2'
UNION ALL SELECT '5','1'
UNION ALL SELECT '6','1'
UNION ALL SELECT '7','1'
UNION ALL SELECT '8','1'
UNION ALL SELECT '9','2'
UNION ALL SELECT '10','3'
UNION ALL SELECT '11','4'
UNION ALL SELECT '12','5'
UNION ALL SELECT '13','6'
UNION ALL SELECT '14','1'
UNION ALL SELECT '15','1'
UNION ALL SELECT '16','2'
UNION ALL SELECT '17','3'
UNION ALL SELECT '18','1'
UNION ALL SELECT '19','2'
UNION ALL SELECT '20','3'
UNION ALL SELECT '21','4'
UNION ALL SELECT '22','5'
UNION ALL SELECT '23','6'
UNION ALL SELECT '24','7'
UNION ALL SELECT '25','8'
UNION ALL SELECT '26','9'
UNION ALL SELECT '27','10'
UNION ALL SELECT '28','1'
UNION ALL SELECT '29','1'
UNION ALL SELECT '30','1';with t as (
select id-seq as gid,min(id) minid,max(id) maxid,count(*) groupid
from #t
group by id-seq )
select a.ID,a.seq,b.groupid
from #t a
join t b on a.ID between b.minid and b.maxid
groupid前面加TM就你自己处理了本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 chaquopy python 安卓
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 有没有帮写代码做实验仿真的
- ¥15 報錯:Person is not mapped,如何解決?
- ¥30 vmware exsi重置后登不上
- ¥15 易盾点选的cb参数怎么解啊
- ¥15 MATLAB运行显示错误,如何解决?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题