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

Sql 将总价值分为三部分-箱子包装,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,我试图将第二列分成三部分,这样它们就可以等分,但是如果总值不能被三整除,那么情况是第一部分高于或等于第二部分,第二部分高于或等于第三部分 以下是我的表格示例: ID | Values ------------------------- 1 1 2 1 3 2 4 1 5 2 6 1 7 3 我的预期输出应该是(此处的ID列只是一个行号): 如您所见,如果将

我试图将第二列分成三部分,这样它们就可以等分,但是如果总值不能被三整除,那么情况是第一部分高于或等于第二部分,第二部分高于或等于第三部分

以下是我的表格示例:

  ID   |  Values  
-------------------------
   1       1
   2       1
   3       2
   4       1
   5       2
   6       1
   7       3
我的预期输出应该是(此处的ID列只是一个行号):

如您所见,如果将所有值相加,则总值为11。如果我们把它除以3,结果是4,4,和3。因此,我将计算它以获得预期的输出:

(1, 1, 2) = 3, 
next is (1, 2, 1) = 3, 
and the last is (3) = 1.
你知道我将如何解决这个问题吗?我已经将它们除以三,但计算它们以获得具体的业务逻辑是很困难的:

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

我正试图在存储过程中解决这个问题。

@TimBiegeleisen我为此道歉。我更正了我的描述:)输出中的ID列是否表示除行号以外的任何内容?你能再说一遍你想完成什么吗?是的,那只是一个行号。结果应该始终由三部分组成,因此ID列的结果上的值并不重要@GraxSQL server的哪个版本?我正在使用2016@杰维
select @intSum = SUM(Values) / 3 from @table