如何删除除最后一个条目之外的所有条目

时间:2021-03-11 20:03:17

标签: sql sql-server tsql

我有一张表,可以在其中使用与不同事件匹配的相同条目。

enter image description here

在上面的例子中,我想保留 1800 行作为它的最新时间,所以最后一个条目。其余的可以删除。但我不知道该怎么做。我正在使用 SQL Server Management Studio。

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您想要一行 AID,那么您可以使用可更新的 CTE:

with todelete as (
      select t.*,
             row_number() over (partition by AID order by event desc) as seqnum
      from t
     )
delete from todelete
    where seqnum > 1;

答案 1 :(得分:0)

Delete res from 
( select t.*,row_number() over (partition by t.AID order by t.event desc) as seqNo
 from table t) res
where res.seqNo>1