【发布时间】:2020-08-18 10:37:57
【问题描述】:
我是 PL\SQL 编程的新手,我来自 DBA 背景。我有一个要求从主表和参考表中删除数据,但在删除数据时需要遵循以下逻辑,因为我们需要从表中删除 30M 数据,因此我们根据下面的“State_ID”列减少数据。
需要考虑以下条件 1.根据下面给出的示例数据(主表),根据时间戳以desc顺序对数据进行排序,并为每个“State_id”保留前2行数据,并根据“state_id”列从两个表中删除其余数据. 2. select state_id,count() from maintable group by state_id order by timestamp desc 有count()>2;
因此,如果 state_id=1 有 5 行,则必须删除 3 行数据,将前 2 行保留为 state_id=1 并重复其他 state_id 值。
同样的匹配数据也应该从参考表中删除。
请有人帮助我解决这个问题。谢谢。
主表
【问题讨论】: