SQL pra encontrar registros duplicados

SQL Server

26/11/2004

Olá tenho um banco de dados que piossui o campo DCB, que verá ser unico, o problema é que os dados vieram direto do CRF então existe registros duplicados... pois somente pode existir um DCB no banco de dados..

tipo... como faço pra fazer um SQL pra me mostrar todos os REgistro duplicados pelo DCB? e posteriormente deletar o de Codigo Maior.

desde ja agradeco
[]s


Titanius

Titanius

Curtidas 0

Melhor post

Gandalf.nho

Gandalf.nho

26/11/2004

SELECT DCB, Count(*) FROM nome_tabela
GROUP BY DCB
HAVING Count(*) > 1


GOSTEI 12

Mais Respostas

Titanius

Titanius

26/11/2004

neste caso, me retorna somente os duplicados correto?


GOSTEI 0
Titanius

Titanius

26/11/2004

e como faco pra fazer adelecao destes registros?


GOSTEI 0
Gandalf.nho

Gandalf.nho

26/11/2004

neste caso, me retorna somente os duplicados correto?


Sim

e como faco pra fazer adelecao destes registros?


Monte um código para passar por cada registro retornado pela query e use o valor como critério.


GOSTEI 0
Titanius

Titanius

26/11/2004

valkeu manaw...


funfou perfeito aki....

valeu :lol:

[]s


GOSTEI 0
Allan Gaspar

Allan Gaspar

26/11/2004

select distinct
IDCLIENTE
from Cliente_Rotas
group by IDCLIENTE
having COUNT(IDCLIENTE)>1
GOSTEI 2
Leandro Waszak

Leandro Waszak

26/11/2004

No meu caso não funcionou, alguém pode me ajudar?
Não está trazendo só os duplicados.

---------------------------------------------------------------------------------

SELECT DISTINCT EC.CGC
FROM ENTIDADES_COMERCIAIS EC
WHERE EC.CGC > 0
AND EC.CGC IN (SELECT EC.CGC
FROM ENTIDADES_COMERCIAIS EC, PAPEIS_NO_NEGOCIO PP
WHERE EC.CODIGO_DA_ENTIDADE_COMERCIAL =
PP.CODIGO_DA_ENT_COMERCIAL_2
and pp.codigo_do_tipo_de_papel_nego + 0 = 30
and pp.codigo_do_tipo_de_segmento + 0 = 1
and pp.codigo_da_ent_comercial_2 not in
AND EC.CGC IS NOT NULL
GROUP BY EC.CGC,
EC.CODIGO_DA_ENTIDADE_COMERCIAL,
EC.NOME_DA_ENTIDADE_COMERCIAL,
PP.CODIGO_DA_ENT_COMERCIAL_1,
PP.DATA_DE_CANCELAMENTO,
PP.FILIAL_ORIGEM_CLIENTE_ATACADO)

HAVING COUNT(EC.CGC) > 1
GROUP BY EC.CGC;
GOSTEI 0
Leandro Waszak

Leandro Waszak

26/11/2004

Consegui da seguinte forma:

(...)
and 1 < (select count(1)
from entidades_comerciais ec2
where ec1.cgc = ec2.cgc)
(...)
GOSTEI 0
Marcos Filho

Marcos Filho

26/11/2004

select *
into #tmp
from (
select *, row_number() over(partition by chave_primaria ou algo que distinta dos outros order by campo) as ordem
) as x
where ordem >1
GOSTEI 1
Andreia

Andreia

26/11/2004

2.1 Modelo Conceitual













2.2 Modelo Lógico






2.3Descrição Relacional (do modelo alterado)

Departamentos (CodDpto, NomeDpto, CNPJDpto)

Funcionário (CodFunc, NomeFunc, CPFFunc, RGFunc, TelFunc, EndFunc, CargFunc, CepFunc)
DptoFunc (CodDpto,CodFunc)
CodFunc referencia Funcionário
CodDpto referencia Deparamento

Produtos (CodProd, NomeProd, TipoProd, MarcProd, CorProd, ValorProd, FornecProd, DescriçProd)
FuncProd (CodFunc, CodProd)
CodFunc referencia Funcionario
CodProd referencia Produto

Fornecedor (CNPJFornec, NomefantFornec, EndFornec, CidadFornec, CepFornec)
ProdFornec (CodProd, CNPJFornec)
CodProd referencia Produto
CNPJFornec referencia CNPJFornec

Compra (CodComp, ValorComp, DataComp, QuantTotalCompra)
ProdComp (CodComp, CodProd )
CodComp referencia Compra
CodProd referencia Produto

Cliente (CPFCli, NomeCli, RGCli, TelCli, EndCli, CidadCli, CepCli)
CliComp ( CPFCli, CodComp)
CodComp referencia compra
CPFCli referencia CPF

Dependentes (CodDependet, CPFDependent, NomeDependent, RGDependent)
CliDependent ( CodDependet, CPFCli)
CodDependent referencia Dependentes
CPFCli referencia CPF





















2.4 Dicionário de Dados
Faça a descrição de todas as tabelas do modelo lógico
Tabela: Departamentos
Chave
Atributo
Tipo de Dados
Descrição
PK
Coddpto
Integer
Código de Departamentos autonumerado

Nomedpto
Varchar(35)
Nome completo de departamentos
FK
CNPJdpto
Interger
CNPJ de Departamentos autonumerado

Tabela: Funcionário
Chave
Atributo
Tipo de Dados
Descrição
PK
CodFunc
Integer
Código de Funcionário autonumerado

NomeFunc
Varchar(60)
Nome completo de funcionário

CPFFunc
varchar(11)
CPF de Funcionário autonumerado

TelFunc
varchar(15)
Telefone de Funcionário autonumerado

CargFunc
varchar(60)
Cargo de Funcionário

CepFunc
varchar(8)
Cep de Funcionário autonumerado

EndFunc
varchar(70)
Endereço de Funcionário

RGFunc
varchar(10)
RG de Funcionário autonumerado

cidadeFunc
varchar (60)
cidade de Funcionário

Tabela:FunDepto
Chave
Atributo
Tipo de Dados
Descrição
PK FK
Coddpto
Integer
Código de Departamentos autonumerado
PK FK
CodFunc
Integer
Código de Funcionário autonumerado

Tabela: Fornecedor
Chave
Atributo
Tipo de Dados
Descrição
PK
CNPJFornec
Integer
CNPJ de Fornecedor autonumerado

NomeFantFornec
varchar (60)
Nome completo de NomeFantasia

TelFornec
varchar(15)
Telefone de Fornecedor autonumerado

EndFornec
varchar(70)
Endereço de Fornecedor

cidadFornec
varchar (60)
cidade de Fornecedor

CepFornec
varchar(8)
Cep de Fornecedor autonumerado

Tabela:
Chave
Atributo
Tipo de Dados
Descrição













Tabela: Produtos
Chave
Atributo
Tipo de Dados
Descrição
PK
CodProd
Integer
Código de Produtos autonumerado

NomeProd
varchar(70)
Nome completo do Produtos

TipoProd
varchar (60)
Tipo de Produtos autonumerado

MarcProd
varchar(200)


ValorProd
Decimal (7,2)
Valor do Produtos autonumerados

FornecProd
varchar (60)


DescriçProd
varchar (60)





Tabela: Cliente
Chave
Atributo
Tipo de Dados
Descrição
PK
CPFCli
Integer
CPF do cliente autonumerado

NomeCli
varchar (60)
Nome completo do cliente

RGCli
varchar(10)
RG do cliente autonumerado

TelCli
varchar(15)
Telefone do cliente autonumerado

EndCli
varchar(70)
Endereço do cliente

CidadCli
varchar (60)
cidade do cliente

CepCli
varchar(8)
Cep do cliente autonumerado


Tabelas: Dependentes
Chave
Atributo
Tipo de Dados
Descrição
PK
CodDependet
Integer
Codigo do departamento autonumerado

CPFDependent

CPF do departamento autonumerado

NomeDependent

Nome completo de departamento

RGDependent

RG de departamento autonumerado

2.5 Instruções SQL

2.5.1 Criação das tabelas e Inserção de dados

2.5.2 Consultas simples com filtros (em uma tabela) – 5

2.5.3 Consultas complexas (mais de uma tabela) - 5
GOSTEI 0
Cristiane

Cristiane

26/11/2004

SELECT DCB, Count(*) FROM nome_tabela
GROUP BY DCB
HAVING Count(*) > 1


Bom dia, usei essa e funcionou, mas quero trazer mais uma coluna, que seria a matricula. Vou deixar aqui se alguém puder me ajudar.
SELECT NR_CPF, Count(*) FROM dbaps.usuario
GROUP BY NR_CPF
HAVING Count(*) > 1

Quero incluir a coluna cd_matricula.
GOSTEI 0
Roberto

Roberto

26/11/2004

SELECT NR_CPF, MATRICULA, Count(*) FROM dbaps.usuario
GROUP BY NR_CPF, MATRICULA
HAVING Count(*) > 1

Basta colocar as colunas no SELECT e no GROUP BY.
GOSTEI 0
Igor Sena

Igor Sena

26/11/2004

SELECT NR_CPF, MATRICULA, Count(*) FROM dbaps.usuario
GROUP BY NR_CPF, MATRICULA
HAVING Count(*) > 1

Basta colocar as colunas no SELECT e no GROUP BY.


E quando temos um campo que é duplicado, mas só uma coluna

Por exemplo, eu tenho um campo de contas a pagar, que por um erro duplicou o 'nosso número' do banco
eu preciso retornar os registros que foram duplicados, se possível fazer um join com outra coluna,


Esse código seria o count

Select nrdocumento_banco, count(nrdocumento_banco)
from conta
where
dt_emissao Between '26.03.2018' AND '19.04.2018'
group by NRDOCUMENTO_BOLETO
HAVING Count(NRDOCUMENTO_BOLETO) > 1  



E esse o select que retornaria os dados com o count dentro dele em um subselect
Select c.nrdocumento_banco, c.codpessoa, p.nome, p.cpfcgc, c.dt_emissao
from conta c
join conta c on
c.codpessoa = p.codpessoa


Como faço essa integração?


GOSTEI 0
Jhonatan Alves

Jhonatan Alves

26/11/2004

A titulo de conhecimento dos senhores, eu fiz um select onde na minha tabela eu tenho nomes diferentes com CPF iguais.

EX: ARTUR LIRA
CPF: 024.309.258.23

ARTUR LIRA FILHO
CPF: 024.309.258.23

SELECT array_to_string(array_agg(trim(nome)::varchar), '' >>> '') AS nomes, translate(cpf,''./- ()'','''') AS cpf, count (*) AS total FROM tabela_clientes GROUP BY translate(cpf,''./- ()'','''') HAVING COUNT(*) > 1 ORDER BY array_to_string(array_agg(trim(nome)::varchar), '' >>> '');

Eu tenho o seguinte resultado.

nomes cpf total
ARTUR LIRA >>> ARTUR LIRA FILHO 024.309.258.23 2

Não sei seria pertinente neste caso mas pode resolver o problema e sanar duvidas de muitos, meu banco de dados é PostgreSql.
GOSTEI 1
POSTAR