MSSQL Query从TABLE中删除重复的行,在表中留下不同的行

Akh*_*iar 8 sql sql-server sql-server-2008

我需要删除除Log具有相同customer_id和的表中第一次出现的类似行之外的所有重复行deactivation_date.如何用最少的sql语句实现这一点.

我正在使用MS SQL Server 2008快速版.

Fed*_*jdu 16

就像是:

DELETE FROM Log WHERE LogId NOT IN 
 (SELECT Min(LogId) FROM Log GROUP BY customer_id, deactivation_date)
Run Code Online (Sandbox Code Playgroud)


Mic*_*Sim 14

要么:

with cte as (
    select row_number() over (partition by customer_id, deactivation_date
    order by log_id) as rn
    from Log)
delete from cte
    where rn > 1;
Run Code Online (Sandbox Code Playgroud)