按COD_ART统计每日库存的增量计算库存数据库搭建咨询
库存增量列实现方案
核心计算逻辑
你需要的库存增量本质是同一COD_ART(商品编码)维度下,当期库存值减去该商品上一个统计日的库存值,和你给出的示例数值匹配。以下是不同场景下的实现方法:
方案1:SQL数据库直接计算(适合已完成数据入库的场景)
如果你的库存数据已经存储在支持窗口函数的数据库(MySQL8.0+、PostgreSQL、Hive等)中,直接用LAG窗口函数即可完成计算:
-- 查询计算结果 SELECT COD_ART, date, inventory, Movement, inventory - LAG(inventory,1) OVER (PARTITION BY COD_ART ORDER BY date ASC) AS inventory_increase FROM 你的库存表 ORDER BY COD_ART, date DESC;
如果需要将计算结果持久化存储为表的新列,执行以下操作:
-- 新增库存增量字段 ALTER TABLE 你的库存表 ADD COLUMN inventory_increase INT; -- 回填全量库存增量数据 UPDATE 你的库存表 t1 INNER JOIN ( SELECT COD_ART, date, inventory - LAG(inventory,1) OVER (PARTITION BY COD_ART ORDER BY date ASC) AS calc_val FROM 你的库存表 ) t2 ON t1.COD_ART = t2.COD_ART AND t1.date = t2.date SET t1.inventory_increase = t2.calc_val;
方案2:Excel/CSV预处理(适合原始数据未入库的场景)
- 先将全量数据按「COD_ART升序、日期升序」排序
- 新增
inventory_increase列,首条数据(对应每个商品最早的统计日)无增量留空,第二条数据开始输入公式:=IF(A2=A1,C2-C1,"")(假设A列为COD_ART字段,C列为inventory字段) - 将公式下拉全量填充即可得到所有日期的库存增量,后续可直接导入数据库
结果校验建议
计算完成后可通过该逻辑校验准确性:同一商品相邻两个统计日的库存增量,应当等于两日期间所有Movement异动值的总和,出现差值可优先排查漏统计的异动记录或者日期错位问题。
内容的提问来源于stack exchange,提问作者Davide B.
相关产品推荐
相关产品推荐

