DB2 SQL之删除重复行

对于同一Item,只保留InvDate最大的那行
一般删除方法
DELETE
FROM Inventory AS D
WHERE (
        Item
        ,InvDate
        ) NOT IN (
        SELECT Item
            ,InvDate
        FROM Inventory I
        WHERE D.Item = I.Item
        ORDER BY InvDate DESC FETCH FIRST ROW ONLY
        );

使用OLAP函数进行查询删除
DELETE
FROM (
    SELECT row_number() OVER (
            PARTITION BY Item ORDER BY InvDate DESC
            ) AS rn
    FROM Inventory
    )
WHERE rn > 1;


请使用浏览器的分享功能分享到微信等