Deletar se tiver menos que 10 registros repetidos.

Delphi

21/07/2005

Boa Noite, me expressei mau em um tópico que postei.

Tenho a seguinte situação:

Uma tabela com cerca de 400 mil registros, nesta tabela tem um campo TIPO.

Preciso deletar todos os registros desta tabela , se o campo TIPO, tiver menos que 10 registros repetidos.



Exemplo:
Tenho 100 registros com o conteudo A.
Beleza então estes não são deletados.

Mas se eu tiver 9 registros com o conteudo B.
Estes sim são deletados.

Mas só pra lembrar...
Tem muitos tipos diferentes, gostaria de fazer isso tudo em um select só, não colocando count em um por um e deletar...

Tentei com o having, mas ficou muito lento...
e no final não ficou no resultado esperado.

Obrigado e desculpas pela repetição.


Lynx

Lynx

Curtidas 0

Respostas

Lynx

Lynx

21/07/2005

eu testei dessa maneira:

select TIPO from TABELA group by TIPO
having Count(TIPO) < 10

e volta os registros que tem menos que 10 tipos repetitivos (Creio eu que está certo)

Mas para deletar tentei
Delete From Tabela where TIPO in (select TIPO from TABELA group by TIPO
having Count(TIPO) < 10)

Mas não deu certo...


GOSTEI 0
Lynx

Lynx

21/07/2005

ficou assim.

Delete From Tabela where TIPO in (select TIPO from TABELA
group by TIPO
having Count(TIPO) > 2000)

creio eu que está certo agora


GOSTEI 0
Lynx

Lynx

21/07/2005

em vez de maior é menor.
Ficou assim:
[color=red:907de6a0ff]Delete From Tabela where TIPO in (select TIPO from TABELA
group by TIPO
having Count(TIPO) < 2000)
[/color:907de6a0ff]


GOSTEI 0
Motta

Motta

21/07/2005

NÃO ERAM 100 ??


GOSTEI 0
Lynx

Lynx

21/07/2005

pode ser 100, 10 ou 30.
Só preciso deletar os repetidos aos poucos...


GOSTEI 0
POSTAR