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

如何基于lot_product的状态序列筛选数据?附SQL示例与样本

实现逻辑

你给出的所有筛选规则可以简化为:按时间升序排列每个lot_product的状态记录后,取该分组的最后一条记录,若这条记录的状态为IN或RETURN则保留,为OUT则直接过滤该分组的所有记录。

修改后的SQL语句

WITH ranked_lot AS (
    SELECT 
        dt_prod,
        lot_product,
        kode_rak,
        item_type,
        item_size,
        operator,
        qty_mtr,
        qty_mtr_sisa,
        status,
        tanggal,
        -- 按lot_product分组,按时间倒序排序,最新的记录排第一
        ROW_NUMBER() OVER (PARTITION BY lot_product ORDER BY tanggal DESC) AS rn
    FROM prod_scan_item_fg
)
SELECT 
    dt_prod,
    lot_product,
    kode_rak,
    item_type,
    item_size,
    operator,
    qty_mtr,
    qty_mtr_sisa,
    status,
    tanggal
FROM ranked_lot
-- 取每个lot的最新记录,且状态为IN/RETURN
WHERE rn = 1 AND status IN ('IN', 'RETURN')

逻辑验证

对应你的样本数据:

  • lot_product = A的最新记录是RETURN,符合条件保留
  • lot_product = B的最新记录是IN,符合条件保留
  • lot_product = C的最新记录是OUT,直接过滤
  • lot_product = D的最新记录是OUT,直接过滤
    最终输出和你给出的期望结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:54:04