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

如何用Access SQL计算物品共同出库占比?是否需转用R/Python?

用Access SQL实现共同出库占比统计

当然可以用Access SQL直接搞定这个占比统计,完全不需要急着切换到R或Python!下面我会一步步拆解逻辑,给出完整的查询语句:

核心逻辑拆解

要计算Item1出库时Item2一同出库的占比,我们需要两个关键数据:

  • Item1的总出库单数量(即该TK出现在多少个不同的DocumentNo里)
  • Item1和Item2共同出现的出库单数量

完整SQL查询语句

SELECT 
    co.TK1, 
    co.TK2, 
    ROUND(co.Co_Outbound / tot.Total_Outbound, 2) AS Co_Occurrence_Ratio
FROM (
    -- 子查询:统计每对TK共同出库的单量
    SELECT 
        a.TK AS TK1, 
        b.TK AS TK2, 
        COUNT(DISTINCT a.DocumentNo) AS Co_Outbound
    FROM access3 a
    JOIN access3 b ON a.DocumentNo = b.DocumentNo
    WHERE a.TK <> b.TK  -- 排除自身和自身的无效组合
    GROUP BY a.TK, b.TK
) AS co
INNER JOIN (
    -- 子查询:统计每个TK的总出库单量
    SELECT 
        TK, 
        COUNT(DISTINCT DocumentNo) AS Total_Outbound
    FROM access3
    GROUP BY TK
) AS tot ON co.TK1 = tot.TK
ORDER BY co.TK1, co.TK2;

语句说明

  • 子查询co:基于你之前的关联查询,进一步统计每对TK共同出现在多少个出库单里,得到Co_Outbound(共同出库次数)
  • 子查询tot:统计每个TK对应的所有出库单数量,得到Total_Outbound(总出库次数)
  • 最后通过INNER JOIN关联两个子查询,用Co_Outbound / Total_Outbound计算占比,ROUND函数用来控制小数位数(这里保留2位,你可以根据需求调整)

执行后就能得到类似TK16330 | TK16331 | 0.85的结果,完全匹配你的期望输出格式。

关于R/Python的补充

如果后续你需要更复杂的分析(比如批量筛选特定物品、生成可视化报表),R或Python确实能提供更灵活的处理方式:

  • Python可以用pandas库,通过分组、合并数据框来快速计算占比
  • R可以用dplyr进行类似的分组统计操作

但就当前的占比计算需求而言,Access SQL已经足够高效,能帮你省去手动处理600+物品的麻烦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:44:11