如何获取列中值的不同百分比并将它们相加以分配到新的 SQL 列中?

Posted

技术标签:

【中文标题】如何获取列中值的不同百分比并将它们相加以分配到新的 SQL 列中?【英文标题】:How can I take different percentages of the value in a column and add them up to assign in a new SQL column? 【发布时间】:2021-09-01 20:36:01 【问题描述】:

我的表中有一个名为“FundedAmount”的列,我想在 SQL 上运行名为“Commissions”的查询时创建一个新列,并且这个新创建的列需要根据层级百分比汇总方程如下:

5%(0$ - $5000) + 1%($5001 - $10,000) + 0.5%($10,001 - $20,000) + 0.25%(剩余金额)

因此,例如,在下面的示例中,“佣金”列将具有值:

5%(0$ - $5000) + 1%($5001 - $10,000) + 0.5%($10,001 - $20,000) + 0.25%(剩余金额)

250 + 50 + 5.515 = 305.515

【问题讨论】:

mysql SQL Server - 请更正您的标签。 根据问题指南,请展示您尝试过的内容并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。并且请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。 【参考方案1】:

修复您的分层表,使其如下所示:

low    high      percent
0      5000       0.05
5000   10000      0.01
. . . 

请注意,我更改了界限,因此包括了所有金额,包括小数。

然后你可以使用这样的子查询来计算这个:

select t.*,
       (select sum( (least(tt.high, t.fundedamount) - tt.low) * tt.percent )
        from tiers tt
        where t.fundedamount > tt.low
       ) as commission
from t;

【讨论】:

以上是关于如何获取列中值的不同百分比并将它们相加以分配到新的 SQL 列中?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过不同的 csv 文件迭代选择的操作并将结果输出到新的 csv 文件

如何使用 OVER() 函数获取列中值的总和?

c# 如何从datatable中取出某列的值并去除这一列的相同值,并将这列添加到新的表中

如何获取列中值的不同计数

创建视图控制器并将现有 VC 的标签和按钮添加到新的 VC Swift iOS

计算列中值的百分位数