You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2014:无需CASE表达式按每3个唯一ID分组设置groupid

解决方案

针对SQL Server 2014(v12.0.6108.1)版本,无需硬编码CASE表达式,可通过数学计算自动生成分组ID,完美适配id持续增长的场景,以下提供两种可行方案:

方案1:整数除法计算

利用整数除法特性,将id值偏移后除以分组大小(此处每组覆盖3个连续id区间),直接得到分组ID:

SELECT 
    id,
    (id + 2) / 3 AS groupid
FROM table_name

原理:通过id + 2让区间起始值对齐到3的倍数,整数除法自动完成分组:

  • 1-3 → (1+2)/3=1,(3+2)/3=1(整数除法舍去小数部分)
  • 4-6 → (4+2)/3=2,(6+2)/3=2
  • 后续增长的id会自动归入对应分组,无需修改代码

方案2:CEILING函数计算

通过CEILING函数对id除以分组大小的结果向上取整,得到分组ID:

SELECT 
    id,
    CEILING(id / 3.0) AS groupid
FROM table_name

原理:将id转为浮点数后除以3,向上取整即可匹配对应分组:

  • 1-3 → 1/3≈0.333,CEILING后为1;3/3=1,CEILING后为1
  • 4-6 →4/3≈1.333,CEILING后为2;6/3=2,CEILING后为2
  • 新增id如10→10/3≈3.333,CEILING后为4,完全符合预期

执行结果验证

两种方法执行后均会得到预期分组结果:

idgroupid
11
21
31
42
42
52
62
62
73
73
73
83
93
93
104

内容的提问来源于stack exchange,提问作者Jefflee0915

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:30:32