RICHEER COCA 2022-06-23 11:53 采纳率: 93.9%
浏览 63
已结题

已知表 ID为主键,如何根据seq连续数的 个数 分别编组,写到字段GROUPID,请专家答疑解惑


 已知表 ID为主键,如何根据seq连续数的 个数 分别编组,写到字段GROUPID
其中
seg 字段里的整数是"分段"的连续数

如果仅仅是1时,只有1,没有2及其他的整数,记作M1,
是1到2时,记作M2,
是1到3时,记作M3,
......
......
是1到6时,记作M6
......
......
是1到999时,记作M999

提问的代码上传不了,所以写在下面的  题主的回答里



  • 写回答

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就你自己处理了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月1日
  • 已采纳回答 7月1日
  • 创建了问题 6月23日

悬赏问题

  • ¥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同步传输问题