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

如何在Spotfire自定义表达式中使用总计计算商品销售占比

解决方案:计算商品分项销量占比

错误原因

你当前的表达式中,分母的sum(qty_sold for Item)仅计算了当前商品分项的销量,而非对应产品的所有分项总销量,导致分母取值错误,结果不符合预期。

正确实现方式

1. SQL 计算方案

先聚合每个产品的总销量与库存,再关联分项销售表计算占比:

WITH ProductTotal AS (
    SELECT 
        p.Product,
        p.Current_Qty,
        SUM(s.Qty_sold) AS Total_Sales
    FROM 产品总库存表 p
    INNER JOIN 产品分项销售表 s ON p.Product = s.Product
    GROUP BY p.Product, p.Current_Qty
)
SELECT 
    s.Product,
    s.Product_Item,
    s.Qty_sold,
    ROUND(
        s.Qty_sold / (pt.Total_Sales + pt.Current_Qty) * 100,
        2
    ) AS Sales_Ratio_Percent
FROM 产品分项销售表 s
INNER JOIN ProductTotal pt ON s.Product = pt.Product
ORDER BY s.Product, s.Product_Item;

该SQL会输出每个分项的销量占(对应产品总销量+总库存)的百分比,保留两位小数,与你给出的示例逻辑一致(如50/(150+3000)=1.59%)。

2. BI工具交叉表自定义表达式(以Tableau/Power BI为例)

如果是在BI工具的交叉表中自定义计算,需要使用维度级别表达式获取产品维度的总销量和库存:

  • Tableau 可用LOD表达式:
    SUM([Qty_sold]) / ({FIXED [Product]: SUM([Qty_sold])} + {FIXED [Product]: SUM([Current_Qty])})
    
  • Power BI 可用度量值:
    先创建产品总销量度量值:
    Total_Sales_Product = CALCULATE(SUM('产品分项销售表'[Qty_sold]), ALLEXCEPT('产品分项销售表', '产品分项销售表'[Product]))
    
    再创建产品总库存度量值:
    Total_Stock_Product = CALCULATE(SUM('产品总库存表'[Current_Qty]), ALLEXCEPT('产品总库存表', '产品总库存表'[Product]))
    
    最后计算占比:
    Sales_Ratio = DIVIDE(SUM('产品分项销售表'[Qty_sold]), [Total_Sales_Product] + [Total_Stock_Product])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:47:08