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