首页 > 解决方案 > 我想在 SQL Server 中以特定组大小划分表中的记录

问题描述

例如,我有一个 TABLE1 有大量记录,ID 是主键

ID Col1 COL2
1 1 X
2 2 是的
3 2 z
4 3 一个
5 4 b
6 5 C
7 5 d

很快....

现在我有带有额外列计数器的空表 TABLE2

ID COL1 COL2 柜台

我想从 TABLE1 中填充 TABLE2,其中第一个 n 记录的计数器设置为 1,下一个 n 记录设置为 2,依此类推。'n' 在这里是可变的,持有组大小的值

让 n = 2 并且当我们填写 TABLE2 时,然后是预期结果

ID COL1 COL2 柜台
1 1 X 1
2 2 是的 1
3 2 z 2
4 3 一个 2
5 4 b 3
6 5 C 3
7 5 d 4

标签: sqlsql-servertsql

解决方案


只需将结果插入到您的新表中:

SELECT *
     , ((ROW_NUMBER() OVER (ORDER BY id)-1) / 2) + 1 AS n0
  FROM t1
;

推荐阅读