我有一个包含6000条记录的表,前100条记录应该是批处理1,第二条100应该是批处理2,依此类推。请帮我解决下面的SQL查询 问题
下面是我想要数据的示例
输入
data
1
2
3
4
5
6
7
8
9
10
11
12
我希望输出为
data batch
1 Batch-1
2 Batch-1
3 Batch-1
4 Batch-1
5 Batch-2
6 Batch-2
7 Batch-2
8 Batch-2
9 Batch-3
10 Batch-3
11 Batch-3
12 Batch-3
答案 0 :(得分:5)
您可以使用ROW_NUMBER
分析函数来获取100个项目的批次:
SELECT t.*,
'Batch-' || CEIL( ROW_NUMBER() OVER ( ORDER BY data ) / 100 ) AS batch
FROM table_name t;
或者,如果data
是连续的,那么:
SELECT t.*,
'Batch-' || CEIL( data / 100 ) AS batch
FROM table_name t;