如果遇见在一个表中,有若干比相同的数据,或者是卡一个条件有相同的数据。你要删除或者选择其中的一部分的时候往往有点困难。
这时候用到ROW_NUMBER()函数,会省劲很多。
ROW_NUMBER() OVER(PARTITION BY QCIMAT ORDER BY QCIMAT ) as QTY
with A as
(
select qcimat,ROW_NUMBER() OVER(PARTITION BY QCIMAT ORDER BY SYSDAT desc ) as QTY, SYSDAT
from KNMT123
)
delete from A where QTY <>1