Como encontrar nomes repetidos

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
denniserra
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 04 Jun 2008 10:21 am
Localização: Cascais - Lisboa - Portugal
Denni Serra.

Olá, pessoal!!!!

Estou com a seguinte dúvida......como faço um Select para achar os nome repetidos?

Exemplo da BD:

Selecionar tudo

ID      NOME
293050  Antonio Araujo
4434    António Araújo
262051  Eva Santos
5673    Eva Santos
Entre muitos outros

Agradeço desde já

Abraço :D

Denni Serra.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Tente isso:

Selecionar tudo

SELECT nome, count(id)
FROM tabela
GROUP BY nome
HAVING count(id) >1
Alguns links interessantes sobre acentuação:
http://glufke.net/2009/01/08/ignorando- ... as-no-10g/
http://glufke.net/oracle/viewtopic.php?t=947
denniserra
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 04 Jun 2008 10:21 am
Localização: Cascais - Lisboa - Portugal
Denni Serra.

Cara....Brigadão, mas queria aparecesse o ID de todos os nomes repetidos, é possivél???:shock:

Abraço!!!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

SIM
Esta é minha tabela.

Selecionar tudo

SQL> SELECT EMPNO, JOB FROM EMP
  2  /

     EMPNO JOB
---------- ---------
      7369 CLERK
      7499 SALESMAN
      7521 SALESMAN
      7566 MANAGER
      7654 SALESMAN
      7698 MANAGER
      7782 MANAGER
      7788 ANALYST
      7839 PRESIDENT
      7844 SALESMAN
      7876 CLERK
      7900 CLERK
      7902 ANALYST
      7934 CLERK

14 rows selected.

SQL> 

Este é o select que eu sugeri pra identificar os repetidos.

Selecionar tudo

SQL> SELECT JOB, COUNT(EMPNO) 
  2  FROM EMP 
  3  GROUP BY JOB 
  4  HAVING COUNT(EMPNO)>1
  5  /

JOB       COUNT(EMPNO)
--------- ------------
CLERK                4
SALESMAN             4
MANAGER              3
ANALYST              2

SQL> 

Agora, pra mostrar os codigos:

Selecionar tudo

SQL> SELECT EMPNO, JOB
  2  FROM EMP
  3  WHERE JOB = ANY (SELECT JOB 
  4                   FROM EMP 
  5                   GROUP BY JOB 
  6                   HAVING COUNT(EMPNO)>1 )
  7  /

     EMPNO JOB
---------- ---------
      7934 CLERK
      7900 CLERK
      7876 CLERK
      7369 CLERK
      7844 SALESMAN
      7654 SALESMAN
      7521 SALESMAN
      7499 SALESMAN
      7782 MANAGER
      7698 MANAGER
      7566 MANAGER
      7902 ANALYST
      7788 ANALYST

13 rows selected.

SQL> 
marquesjr
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 05 Dez 2007 10:51 am
Localização: Fortaleza - CE

No caso não seria COUNT(JOB) >1 ao invés de COUNT(EMPNO) >1 na HAVING?

Selecionar tudo

SQL> SELECT EMPNO, JOB 
  2  FROM EMP 
  3  WHERE JOB = ANY (SELECT JOB 
  4                   FROM EMP 
  5                   GROUP BY JOB 
  6                   HAVING COUNT(EMPNO)>1 ) 
  7  / 
denniserra
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 04 Jun 2008 10:21 am
Localização: Cascais - Lisboa - Portugal
Denni Serra.

Fiz o Select com o EMPNO na HAVING e Bombou!!!!

Brigadão e Abraço a todos, :D
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 20 visitantes