Сегодня 15 января, среда ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
coding4.net
coding4.net
Голосов: 1
Адрес блога: http://www.coding4.net/
Добавлен: 2012-06-11 20:16:46
 

Как удалить дублирующиеся строки таблицы на SQL ?

2014-10-07 15:57:00 (читать в оригинале)


SQL

Часто возникает задача удаления дублирующихся строк на SQL. Предлагаю вам решение для случая, когда строки дублируются по любому набору полей, кроме поля первичного ключа CrawlingId. Проверка на дубли здесь делается по двум полям DBType, BookId, но если вам нужно проверять полные дубли ее нужно сделать по всем (кроме ключа в данном случае). Переделать под любое количество полей проверки очень просто.

DELETE FROM dbo.Books WHERE CrawlingId IN
(
  SELECT T2FR.CrawlingId
  FROM
  (
    SELECT 
      DBType, 
      BookId,
      RN = ROW_NUMBER()OVER(PARTITION BY DBType, BookId ORDER BY DBType, BookId),
      CrawlingId
    FROM dbo.Books
  ) T2FR
  WHERE T2FR.RN>1
)


Конструкция:
RN = ROW_NUMBER()OVER(PARTITION BY DBType, BookId ORDER BY DBType, BookId),
служит для построения номеров строк по группам строк с одинаковыми полями DBType, BookId

Тэги: sql

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.