数学 - 百分比问题增加数字达到百分比

时间:2014-07-04 10:24:45

标签: sql sql-server math

我使用SQL服务器尝试计算这个但是公平的问题是更多基于数学/逻辑。

我需要弄清楚如何获得一定比例的呼叫接收/回答率,例如80%

因此,如果它目前位于12/6 - 50%,我需要确定需要进行多少次调用才能获得80%, 我能解决的唯一方法是通过反复试验,

13/7 = 54%
16/10= 63%
24/18= 75%
30/24= 80%

我能想到的唯一方法就是每次在一个变量上添加1,直到百分比达到80,但是从学校开始已经有一段时间了,我确信这是一个更好的方法。

感谢

3 个答案:

答案 0 :(得分:0)

如果当前百分比 cp

cp = a / b

你问多少要添加到 a 来获得百分比 p 那么这只是一个基本的数学并告诉我

(a + x)/ b = p

cp + x / b = p

x = b(p - cp)

示例:

当前7/13 = 0.5385 = cp

期望4/5 = 0.8

添加13 *(0.8 - 0.5385)= 3.4 = x到7得到10.4 / 13 = 0.8

答案 1 :(得分:0)

这很简单:

current = a / b
target (pt) = (a + x) / (b + x)
pt(b + x) = a + x
pt b + pt x = a + x
pt b - a = x - pt x = x(1 - pt)

x = (pt b - a) / (1 - pt)

只要您的目标百分比表示为小数(0.8)而不是百分比(80),这将有效:

DECLARE @TotalCalls float;
DECLARE @CallsNotDropped float;
DECLARE @PercentageToReach float;
DECLARE @Result float;

SET @TotalCalls = 13;
SET @CallsNotDropped = 7;
SET @PercentageToReach = 0.8; -- 80%

SET @Result = ((@PercentageToReach * @TotalCalls) - @CallsNotDropped) 
              / (1 - @PercentageToReach);

SELECT
    @Result As 'Number to add/subtract',
    @TotalCalls + @Result As 'New total',
    @CallsNotDropped + @Result As 'New not dropped',
    100 * ((@CallsNotDropped + @Result) / (@TotalCalls + @Result)) As 'New %'
;

/*
 Output:

 | Number to add/subtract | New total | New not dropped | New % |
 | 17                     | 30        | 24              | 80    |
*/

答案 2 :(得分:-1)

这是公式:您可以在直接SQL中执行此操作;不需要存储过程:

NewCallsNeeded = (TargetRatio * TotalCalls - DroppedCalls) / (1 - TargetRatio)