我将编写一个查询来实现如下所示:
表名:应用程序
AppId (PK,int) AppType (bit)
1 0
2 0
3 0
4 0
5 1
6 0
7 0
8 0
9 1
10 1
11 0
12 0
13 1
14 0
15 1
我必须根据 App_type 按顺序对 App_Id 进行分组并创建一批记录。需要注意的重要一点是,我必须在创建批次时维护 AppId 的 SEQUENCE。一个批次可以拥有的最大记录数取决于批次大小参数(比如现在将批次大小设置为 3)。创建批处理后,将详细信息插入另一个名为 ApplicationBatch 的表中。所以我想要一个类似的输出:
表名:ApplicationBatch
BatchId MinAppId MaxAppId AppType
001 1 3 0
002 4 4 0
003 5 5 1
004 6 8 0
005 9 10 1
006 11 12 0
007 13 13 1
008 14 14 0
009 15 15 1
还有一件事我必须以最有效和优化的方式设计查询,因为应用程序表中可以有超过百万条记录。
更新:
目前我有 Application 表(在我上面的原始问题中定义),我想根据 Application 表中的数据填充 ApplicationBatch 表。