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

生成特定计数模式:第1-5行递增,第6-7行保持不变

实现特定循环计数模式的SQL解决方案

需求为生成特定计数模式:行编号i按1-7循环重复,仅当i=1、2、3、4、5时计数值递增,i=6、7时计数值保持与同组i=5的数值一致。

原代码

WITH RECURSIVE numbers(pk) AS (
  SELECT 1
  UNION ALL
  SELECT pk + 1 FROM numbers WHERE pk < 27
)
SELECT pk, (row_number() over (order by pk asc) -1) %7 +1 as i,
    (case when pk%7 =5 then pk
     when pk%7 =6 then pk-1
    when pk%7 = 0 then pk-2 else pk end) as p 
 FROM numbers;

原代码无法满足需求,例如第8行计数值应为6而非8,需调整逻辑。


修正后的SQL代码

WITH RECURSIVE numbers(pk) AS (
  SELECT 1
  UNION ALL
  SELECT pk + 1 FROM numbers WHERE pk < 27
)
SELECT 
    pk,
    (row_number() OVER (ORDER BY pk ASC) - 1) % 7 + 1 AS i,
    FLOOR((pk - 1) / 7) * 5 + LEAST((row_number() OVER (ORDER BY pk ASC) - 1) % 7 + 1, 5) AS p
FROM numbers;

逻辑说明

  1. 递归CTEnumbers生成1到27的连续序列pk
  2. i的计算保持原逻辑,实现1-7循环编号
  3. p的计算分为两部分:
    • FLOOR((pk - 1)/7)*5:计算当前组之前累计的计数值,每组贡献5个递增数
    • LEAST(...,5):限制组内计数值最大为5,确保i=6、7时与同组i=5的数值一致

预期结果

pk行号i目标计数值p
111
222
333
444
555
665
775
816
927
1038
1149
12510
13610
14710
15111
16212
17313
18414
19515
20615
21715
22116
23217
24318
25419
26520
27620

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 12:47:31