Página 1 de 1

Clausula contraria a DISTINCT

NotaPublicado: 2006-05-30 12:09 @548
por rookie
Saludos a todos.
Con la claúsula DISTINCT puedo seleccionar los registros no repetidos en una tabla.

¿Cuál sería la claúsula contraria, para seleccionar los registros repetidos en una tabla?

Gracias de antemano por el tip . Hasta pronto.

NotaPublicado: 2006-05-30 16:33 @731
por kidd
Hola:

Lo que puedes hacer es agrupar en base de un campo o varios campos y seleccionar los repetidos, por ejemplo, dígamos que tienes una tabla:

Código: Seleccionar todo
id
nombre
pais


Quieres ver si hay nombre repetidos:

Código: Seleccionar todo
SELECT nombre,COUNT(*) AS r FROM tabla WHERE r>1 GROUP BY nombre ORDER BY r DESC


Lo que hace es que te muestra los nombres que han sido repetidos y la cantidad de repeticiones que hay en la tabla.

También lo puedes agrupar por más campos, dígamos los que tengan el mismo nombre y en el mismo país:

Código: Seleccionar todo
SELECT nombre,COUNT(*) AS r FROM tabla WHERE r>1 GROUP BY nombre,pais ORDER BY r DESC



Saludos

NotaPublicado: 2006-05-30 16:37 @734
por explorer
Supongamos que tenemos una tabla (llamada tabla) con un campo llamado titulo y queremos sacarles agrupados y cuántas veces aparecen cada uno de ellos.

La siguiente instrucción SQL lo dará:
Código: Seleccionar todo
select titulo, count(*) from tabla GROUP BY titulo;


Si queremos sacarles ordenados por el campo titulo:
Código: Seleccionar todo
select titulo, count(*) from tabla GROUP BY titulo ORDER BY titulo;


Y si queremos sacarles ordenados según las veces que se repiten:
Código: Seleccionar todo
select titulo, count(*) AS veces from tabla GROUP BY titulo ORDER BY veces;