SQL Сравните и определите дубликаты и не дубликаты записей в одной таблице - PullRequest
1 голос
/ 01 апреля 2011

У меня есть следующие данные в таблице

Customer     Location     ID    Attribute1     Attribute2
  Cust1        Loc1       1        High          None
  Cust1        Loc1       2        High          None
  Cust1        Loc1       3        Low           None 

На основании приведенных выше примеров, первые 2 записи являются дубликатами, а последняя - не дубликатами. Итак, мне нужно создать две таблицы, одну для неповторяющихся записей и одну для дубликатов. Нет. столбцов атрибутов, показанных здесь, является лишь примером, обычно это около 10 столбцов.

Таблица первая

Customer     Location     ID    Attribute1     Attribute2
  Cust1        Loc1       1        High          None

Таблица 2

Customer     Location     ID    Attribute1     Attribute2
  Cust1        Loc1       3        Low           None

Может ли это быть выполнено в одном запросе SQL?

Спасибо за любые предложения, Джавид

1 Ответ

0 голосов
/ 28 июня 2011

Вы можете сделать это очень легко ....

(я выполнил этот запрос ниже в базе данных oracle, я не уверен, что наш сервер sql, но с точки зрения предложения sql он работает правильно)

insert all
when (Customer ,    Location ,    ID ,   Attribute1 ,    Attribute2) in 
     (select Customer ,    Location ,    ID ,   Attribute1 ,    Attribute2 
         from base_table 
         group by Customer ,    Location ,    ID ,   Attribute1 ,    Attribute2 
         having count(*)>1) then 
   into Table_One (Customer ,    Location ,    ID ,   Attribute1 ,    Attribute2)
      values (Customer ,    Location ,    ID ,   Attribute1 ,    Attribute2)
else
   into table_two (Customer ,    Location ,    ID ,   Attribute1 ,    Attribute2 )
       value (Customer ,    Location ,    ID ,   Attribute1 ,    Attribute2 ) 
select distinct Customer ,    Location ,    ID ,   Attribute1 ,    Attribute2 from base_table 

этот запрос полезен, когда все значения столбцов повторяются ...

но в вашем вопросе, который вы привели в качестве примера, у вас нет повторяющихся строк ..

см. Значения столбца ID ..

пожалуйста, сообщите здесь, если вы хотите проверить для определенной группы столбцов для того же ..

...