使用预先计算的数字

时间:2018-05-18 22:15:48

标签: sql postgresql

我有一张表格如下:

id name address batch
1  t1   addr1    
2  t2   addr2 
3  t3   addr3
4  t4   addr4
5  t5   addr5
6  t6   addr6

我需要一个sql来使用预定的批量大小填充批次列。因此,例如,如果批量大小计算为2,则表格如下:

id name address batch
1  t1   addr1   1    
2  t2   addr2   1
3  t3   addr3   2
4  t4   addr4   2
5  t5   addr5   3
6  t6   addr6   3

因此,由于批量大小为2,我们为多个行分配一个从1开始的批次(在本例中为2)

有人可以帮助我使用sql吗?

感谢。

3 个答案:

答案 0 :(得分:1)

你可以将id除以2,然后将其分割; 1将是0.5但是ceiled = 1,2将是1,因此批次1.等等。

Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)

SQL小提琴:http://sqlfiddle.com/#!17/ca419/1

答案 1 :(得分:0)

我会使用row_number()

select t.*,
       floor((row_number() over (order by id - 1))/2)
from t;

" 2"是批量大小。

答案 2 :(得分:0)

您不需要使用Intent i = new Intent(this, ActivityB.class); startActivity(i); 功能只需使用排名功能:

floor