1 мы выбрали только те записи, у которых есть повторения строк.
Чтобы подготовить список только неповторяющихся записей, можно воспользоваться модификатором Distinct — Select distinct tovar from Tovary:

Следующий текст запроса
Select id, Tovar from Tovary where Tovar in (
Select Tovar from Tovary Group by Tovar having Count(*) >1)
поможет вывести ‘локализацию’ записей-дубликатов по уникальному полю id в исходной табличке:

А теперь решение, пожалуй, самого главного вопроса — Как удалить из базы повторяющиеся записи-двойники, оставив лишь по одной уникальной. Для случая нашего примера, где в табличке есть уникальное поле id, такую задачку можно решить следующим нехитрым запросом:
Delete from t from tovary t, tovary v
where t.tovar = v.tovar
and t.id > v.id

Прим. Для выполнения вышеприведенного запроса в таблице нужно иметь столбец с уникальным id. Если такового нет — придется каким-то образом создавать его. Как это можно сделать — смотрите в следующем Совете 28.
В результате получим лекарство от головной боли — двоящиеся товары (в случае нашего примера) будут удалены! :

Другим вариантом запроса на удаление записей-дубликатов может быть следующая конструкция с использованием функции row_number():
WITH DeleteDouble
AS (
SELECT tovar, row_number() OVER (PARTITION BY tovar ORDER BY tovar) rn
FROM Tovary
)
DELETE
FROM DeleteDouble
WHERE rn > 1

В этом случае даже нет необходимости создавать дополнительное поле id с уникальным ключом.
Пока об удалении повторов строк всё. Удачи и отсутствия мусора в ваших базах данных!
Еще несколько полезных советов для пользователей о работе с MS SQL Server можно посмотреть здесь
© Simashkov.2014
25.10.2014 г.