You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MSSQL求解产品1达成35%市场份额所需新增数量

用MSSQL计算达成35%市场份额所需的产品1新增数量

问题背景

当前产品1数量为300,产品2、3、4的总数量为700,整体市场总数量为1000,产品1当前市场份额30%。需计算产品1的新增数量(新增后总数量同步增加),使其市场份额提升至35%。

数学推导

设:

  • A = 产品1当前数量(300)
  • B = 其他产品总数量(700)
  • X = 产品1新增数量

目标份额方程为:

(A + X) / (A + X + B) = 0.35

代入数值解方程:

(300 + X) = 0.35 * (1000 + X)
300 + X = 350 + 0.35X
0.65X = 50
X = 50 / 0.65 = 1000/13 ≈76.92

若按你给出的乘数形式推导(设x为产品1的倍数,新增后数量为A*x),方程为:

(Ax) / (Ax + B) = 0.35

解得x=49/39≈1.2564,对应新增数量为300*(49/39)-300=1000/13≈76.92,结果一致。

MSSQL实现方案

1. 计算精确值

直接通过SQL语句计算新增数量的精确值:

SELECT 
    -- 通用公式计算
    (0.35 * 700 - 300*(1-0.35)) / (1-0.35) AS 新增数量精确值,
    -- 简化公式计算
    50 / 0.65 AS 新增数量简化值,
    -- 乘数法计算
    300*(49.0/39) - 300 AS 新增数量乘数法

2. 取整处理(业务场景常用)

向上取整(确保份额不低于35%):

SELECT 
    CEILING(50 / 0.65) AS 新增数量向上取整,
    -- 验证取整后的份额
    (300 + CEILING(50/0.65)) * 100.0 / (1000 + CEILING(50/0.65)) AS 验证份额

向下取整(接近35%):

SELECT 
    FLOOR(50 / 0.65) AS 新增数量向下取整,
    (300 + FLOOR(50/0.65)) * 100.0 / (1000 + FLOOR(50/0.65)) AS 验证份额

其他解决方案

  • 纯数学计算:直接套用公式 X = (目标份额 * B - A*(1-目标份额)) / (1-目标份额),代入数值快速得到结果,无需工具支持。
  • Excel公式:在单元格中输入=(0.35*700 - 300*(1-0.35))/(1-0.35)或简化的=50/0.65,用ROUNDUP/ROUNDDOWN函数处理取整。
  • 通用SQL函数:适配不同参数场景,可创建自定义函数:
CREATE FUNCTION CalculateRequiredAddition(
    @CurrentProduct1 INT,
    @OtherProductsTotal INT,
    @TargetShare DECIMAL(5,2)
)
RETURNS DECIMAL(10,2)
AS
BEGIN
    DECLARE @Addition DECIMAL(10,2)
    SET @Addition = (@TargetShare * @OtherProductsTotal - @CurrentProduct1*(1-@TargetShare)) / (1-@TargetShare)
    RETURN @Addition
END
-- 调用示例
SELECT dbo.CalculateRequiredAddition(300,700,0.35) AS 所需新增数量

内容的提问来源于stack exchange,提问作者Tim R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:57:37