我使用SQL服务器尝试计算这个但是公平的问题是更多基于数学/逻辑。
我需要弄清楚如何获得一定比例的呼叫接收/回答率,例如80%
因此,如果它目前位于12/6 - 50%
,我需要确定需要进行多少次调用才能获得80%,
我能解决的唯一方法是通过反复试验,
即
13/7 = 54%
16/10= 63%
24/18= 75%
30/24= 80%
我能想到的唯一方法就是每次在一个变量上添加1,直到百分比达到80,但是从学校开始已经有一段时间了,我确信这是一个更好的方法。
感谢
答案 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)