将总价值分为三个部分 - 装箱包装

时间:2017-06-24 10:52:15

标签: sql sql-server sql-server-2016

我试图将第二列分成三部分,使得它们被平分,但如果总值不能被三整除,则情况是第一部分高于或等于第二部分,并且第二部分高于或等于第三部分。

以下是我的表格样本:

  ID   |  Values  
-------------------------
   1       1
   2       1
   3       2
   4       1
   5       2
   6       1
   7       3

我的预期输出应该是(这里的ID列只是一个行号):

  ID   |  Divided
-------------------------
   1       3
   2       3
   3       1

如您所见,如果全部添加,则总值为11。因此,如果我们将它除以3,结果值为4,4和3.所以我只计算它以获得预期的输出:

(1, 1, 2) = 3, 
next is (1, 2, 1) = 3, 
and the last is (3) = 1.

我知道如何解决这个问题?我把它们除以3,但是计算它们以获得特定的业务逻辑很困难:

select @intSum = SUM(Values) / 3 from @table

我正在尝试使用存储过程。

0 个答案:

没有答案