2013-11-20 2 views
1

У меня проблема с дубликатами. Этот запрос выбирает дублированныеПревращение оператора select с группой и наличие предложения в delete?

select account_number, acc_cd, seq, count (*) 
FROM table 
group by account_number, acc_cd, seq 
having count(*)>1 

Теперь я хочу, чтобы превратить это в ВЕЬЕТЕ удалить результаты оператора выбора?

Я уже переместил 1 копию дубликата в таблицу tmp, чтобы я мог удалить все данные из выбранного?

Кто-нибудь знает, как это сделать? Я видел вложенные запросы, но я не уверен.

ответ

1

попробовать это:

delete from MyTable 
where exists (
    select 1 from MyTable t2 
    where MyTable.account_number=t2.account_number and MyTable.acc_cd=t2.acc_cd and MyTable.seq=t2.seq 
) 
+0

Привет, веселит, когда я пытаюсь бегущим что в SyBase им получить ошибку, «подзапрос может иметь только один выберите элемент списка» я думал, что проблема была с COUNT (*), но все еще происходит? – rkyyk

+0

попробуйте еще раз! i updated –

+0

Привет, спасибо за это, но он не любит больше одного значения в WHERE IN claus. Я просто перейду в таблицу tmp, а затем удалю, где будут проходить excists – rkyyk

Смежные вопросы