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

Oracle 19c编写SELECT查询获取每组最新账户记录

Oracle 19c 查询每组最新账户编号的解决方案

问题分析

你的数据里,同组账户的Previous Number字段值一致,新账户创建时会继承所属组的Previous Number。现在需要从Previous Number为4、6、9的三个组里,分别取出每组的最新账户编号。默认假设Account Number是按创建顺序递增分配的,编号最大的即为最新账户。

方案一:使用窗口函数(灵活适配不同排序规则)

如果后续需要调整最新行的判断规则(比如按创建时间排序),用窗口函数更方便:

SELECT account_number
FROM (
    SELECT 
        account_number,
        previous_number,
        -- 按组分区,账户编号降序排序,每组第一行就是最新的
        ROW_NUMBER() OVER (PARTITION BY previous_number ORDER BY account_number DESC) AS row_rank
    FROM your_table_name
    -- 只筛选目标组
    WHERE previous_number IN (4, 6, 9)
) ranked_data
WHERE row_rank = 1;

方案二:使用GROUP BY取最大值(简洁高效)

如果确定每组内Account Number最大的就是最新账户,直接用分组聚合更高效:

SELECT 
    previous_number AS 组标识,
    MAX(account_number) AS 最新账户编号
FROM your_table_name
WHERE previous_number IN (4, 6, 9)
GROUP BY previous_number;

注意事项

  • 把代码里的your_table_name替换成你实际使用的表名
  • 如果最新行的判断不是基于Account Number(比如有专门的创建时间字段),只需修改排序字段即可。比如用窗口函数时,把ORDER BY account_number DESC改成ORDER BY create_date DESC(假设创建时间字段是create_date)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:50:55