SQL Server 2008, удаление дубликатов - PullRequest
3 голосов
/ 28 марта 2011

У меня есть такие дубликаты

col1, col2
1, alex
1, alex
2, liza
2, liza
3, peter
3, peter

, только два из них.как удалить дубликаты?

Ответы [ 3 ]

12 голосов
/ 28 марта 2011
WITH    q AS
        (
        SELECT  *,
                ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col1, col2) AS rn
        FROM    mytable
        )
DELETE
FROM    q
WHERE   rn >= 2

Смотрите здесь:

1 голос
/ 28 марта 2011

Если исходная таблица невелика.

select distinct * from origin_table into temp_table;
truncate table origin_table;
insert into origin_table select * from temp_table ;
drop table temp_table;
0 голосов
/ 28 марта 2011
insert into table_new
   Select col1, col2, min(pk) as pk from table_old
   group by col1, col2

-- debug table_new

drop table_old
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...