¿Cómo saber cuantos registros se repiten en Mysql?

publicado por: Anonymous

Necesito contar los registros que se repiten en un campo de mi base de datos. hasta el momento he logrado saber cuales son los que se repiten. Este es mi código:

SELECT DISTINCT a.id_producto, COUNT(*) AS num
FROM tabla_precio AS a 
WHERE (SELECT COUNT(*) 
             FROM tabla_precio AS b 
             WHERE a.id_producto = b.id_producto) > 1

solución

Puedes mejorar el query utilizando las cláusulas GROUP BY y HAVING:

SELECT tp.id_producto, COUNT(1) AS total
FROM tabla_precio tp
GROUP BY tp.id_producto
HAVING COUNT(1) > 1

Sobre esto, puedes utilizar un COUNT nuevamente:

SELECT COUNT(1) FROM (
    SELECT tp.id_producto, COUNT(1) AS total
    FROM tabla_precio tp
    GROUP BY tp.id_producto
    HAVING COUNT(1) > 1) t

Aunque en realidad convendría más ejecutar el primer query y luego tras obtener todos los resultados, contar en tu LP (PHP, Java o lo que utilices) cuántos resultados obtuviste.

Respondido por: user227

Leave a Reply

Your email address will not be published. Required fields are marked *