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

MySQL中计算多/单次采购记录商品的销售额占比

解决MySQL中多采购记录商品销售额占比问题

嘿,我来帮你搞定这个计算需求!根据你给的数据表和期望输出,我们可以通过分步骤的SQL查询来实现。

思路拆解

首先得明确两个核心步骤:

  • 先给每个商品标记是「多条采购记录(multip)」还是「单条采购记录(single)」
  • 分别统计两类商品的总销售额,再除以整体总销售额得到占比

完整SQL代码

WITH item_sales AS (
    -- 第一步:按商品分组,计算每个商品的总销售额和采购记录数
    SELECT 
        ItemId,
        SUM(SalesAmt) AS total_item_sales,
        COUNT(*) AS record_count
    FROM your_table_name  -- 这里替换成你实际的表名
    GROUP BY ItemId
),
category_sales AS (
    -- 第二步:按商品类型(多/单条记录)汇总总销售额
    SELECT 
        CASE 
            WHEN record_count > 1 THEN 'multip'
            ELSE 'single'
        END AS itemType,
        SUM(total_item_sales) AS category_total
    FROM item_sales
    GROUP BY itemType
)
-- 第三步:计算每个类型销售额占总销售额的比例
SELECT 
    itemType,
    ROUND(category_total / (SELECT SUM(category_total) FROM category_sales), 2) AS Sales_pct
FROM category_sales;

代码说明

  1. item_sales CTE:把每个商品的所有采购记录合并,算出该商品的总销售额和采购次数,这样就能区分是单条还是多条记录的商品。
  2. category_sales CTE:用CASE语句给商品分类,然后把同一类别的销售额加总。
  3. 最后一步:通过子查询获取所有商品的总销售额,用每个类别的总销售额除以它,再用ROUND函数保留两位小数,就得到了期望的占比结果。

把代码里的your_table_name换成你实际使用的表名,运行后就能得到你想要的输出啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 11:57:37