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

如何获取基于MRLNum的最新及上一日期记录

需求实现:按MRLNum筛选每组最新及上一日期的记录

源数据

MRLNumCreatedOnReviseCodeRequiredQty
SAN-000027-0012/27/20230100
SAN-000027-0012/28/2023130
SAN-000027-0013/29/2023130
SAN-000028-0013/21/2023130
SAN-000028-0013/23/2023130
SAN-000028-0013/29/2023130
SAN-000028-0013/30/2023130

期望结果

MRLNumCreatedOnReviseCodeRequiredQty
SAN-000027-0012/28/2023130
SAN-000027-0013/29/2023130
SAN-000028-0013/29/2023130
SAN-000028-0013/30/2023130

解决方案(SQL实现)

使用窗口函数ROW_NUMBER()按MRLNum分组,对每组内的记录按CreatedOn倒序排序,筛选排序序号为1和2的记录(对应最新和上一日期的记录):

WITH ranked_records AS (
    SELECT 
        *,
        ROW_NUMBER() OVER (PARTITION BY MRLNum ORDER BY CONVERT(date, CreatedOn, 101) DESC) AS rn
    FROM your_table_name
)
SELECT MRLNum, CreatedOn, ReviseCode, RequiredQty
FROM ranked_records
WHERE rn <= 2
ORDER BY MRLNum, CreatedOn;

逻辑说明

  1. PARTITION BY MRLNum:按MRLNum字段对数据分组,确保每个编号的记录单独处理
  2. ORDER BY CONVERT(date, CreatedOn, 101) DESC:将CreatedOn转换为标准日期格式后倒序排序,保证最新日期的记录排在组内首位
  3. ROW_NUMBER():为每组内的记录生成递增序号,最新日期对应序号1,上一日期对应序号2
  4. 最后筛选序号≤2的记录,即可得到目标结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:45:27