unicos - Buscar filas que tengan el mismo valor en una columna en MySQL
traer registros repetidos sql (6)
Aquí hay una consulta para encontrar email
que se usan para más de un login_id
:
SELECT email
FROM table
GROUP BY email
HAVING count(*) > 1
Necesitará la segunda consulta (de anidado) para obtener la lista de login_id
por email
.
En una tabla [miembro], algunas filas tienen el mismo valor para la columna de email
.
login_id | email
---------|---------------------
john | [email protected]
peter | [email protected]
johnny | [email protected]
...
Algunas personas usaron un login_id diferente pero la misma dirección de correo electrónico, no se estableció ninguna restricción única en esta columna. Ahora necesito encontrar estas filas y ver si deben eliminarse.
¿Qué instrucción SQL debería usar para encontrar estas filas? (MySQL 5)
Esta consulta le dará una lista de direcciones de correo electrónico y cuántas veces se usan, con las direcciones más utilizadas primero.
select email, count(*) as c from table
group by email having c > 1
order by c desc
Si quieres las filas completas:
select * from table where email in (
select email from table
group by email having count(*) > 1
)
Gracias chicos :-) Usé el siguiente porque solo me preocupaban esas dos columnas y no tanto por el resto. Funcionó bien
select email, login_id from table
group by email, login_id
having COUNT(email) > 1
La primera parte de la respuesta aceptada no funciona para MSSQL.
Esto funcionó para mí:
select email, COUNT(*) as C from table
group by email having COUNT(*) >1 order by C desc
use esto si su columna de correo electrónico contiene valores vacíos
select * from table where email in (
select email from table group by email having count(*) > 1 and email != ''''
)
select email from mytable group by email having count(*) >1