Deletar se tiver menos que 10 registros repetidos.
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.
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
Curtidas 0
Respostas
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...
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
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
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
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]
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
21/07/2005
NÃO ERAM 100 ??
GOSTEI 0
Lynx
21/07/2005
pode ser 100, 10 ou 30.
Só preciso deletar os repetidos aos poucos...
Só preciso deletar os repetidos aos poucos...
GOSTEI 0