【问题标题】:How can I take different percentages of the value in a column and add them up to assign in a new SQL column?如何获取列中值的不同百分比并将它们相加以分配到新的 SQL 列中?
【发布时间】: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 - 请更正您的标签。
  • 根据问题指南,请展示您尝试过的内容并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。并且请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。

标签: sql database


【解决方案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;

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 2019-11-21
    • 2021-11-12
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多