No entanto, é comum nos deparamos com bases de dados repletas de registros duplicados, o que pode ter ocorrido por conta de um mal planejamento ou, forçado devido a importação de dados externos.
Localizar e eliminar estes registros, será o que veremos neste artigo.
- Simulando Registros Duplicados
A forma mais simples de localizar os duplicados é através dos comandos GROUP BY e HAVING. Vamos popular uma tabela de produtos a fim de duplicar registros:Create Table
produto ( id_produto
bigint not null
, descricao
varchar
(100), estoque
int not null default
0 ) ;
Insert Into
produto
Values
(1,
"Produto A"
, 10), (2,
"Produto B"
, 10), (3,
"Produto C"
, 10), (4,
"Produto B"
, 12), (5,
"Produto C"
, 8), (6,
"Produto D"
, 10), (7,
"Produto E"
, 10), (8,
"Produto E"
, 10), (9,
"Produto F"
, 10);
- Identificando os Duplicados
Vejam que os produtos B, C e E estão duplicados, vamos então apresenta-los utilizando um simples select:
select
*
from
produto
group by
descricao
having
count
(descricao) > 1 ;
id_produto descricao estoque
---------- --------- -------
2 Produto B 10
3 Produto C 10
7 Produto E 10
Localizar os registros foi possível pois, agrupamos os diferentes produtos em um só (group by), após, adicionamos a condição para que somente os registros que contenham mais de uma ocorrência (having...) fossem apresentados. (Mais de uma ocorrência após agrupado). No exemplo, filtramos somente os registros com mais de uma ocorrência, mas você pode especificar a quantidade desejada.
Nenhum comentário:
Postar um comentário