如何在Oracle中获取每个组/ ID的最大row_number?

问题描述 投票:0回答:1

6806969 36806969 16806969 27654392 17654392 2我有一个ID,在下一列中有row_num值。如何以这样的方式在表中输入下一个值:对于ID 6806969,下一个插入值必须为4,对于ID 7654392,下一个插入值必须为3。请提出任何建议。我尝试将max()与row_number一起使用,但没有给我想要的结果。

oracle11g
1个回答
0
投票

您可以制定程序

CREATE OR REPLACE PROCEDURE add_id (id_key NUMBER)
DECLARE prev_max NUMBER
BEGIN
   SELECT MAX(row_num) INTO prev_max FROM your_table WHERE id = id_key);
   INSERT INTO your_table(id, row_num) VALUES (id, prev_max + 1); 
END;

并这样称呼它

BEGIN
   add_id(6806969);
END;
© www.soinside.com 2019 - 2024. All rights reserved.