2010-10-14 14 views
8

¿Cómo puedo contar duplicados filas wihtin instrucción de selecciónrecuento MySQL duplica

aquí es mi mesa

name food 
A Apple 
B Banana 
A Banana 
C Apple 

resultado debe ser así:

name food count 
A apple (2) 
B Banana (1) 
A Bananaa (2) 
C Apple (1) 

Necesito un tercio de Coloumn en consecuencia establecer qué valor se contará (Nombre)

Gracias de antemano

Respuesta

23

No está claro exactamente qué es lo que quiere hacer, así que aquí hay dos posibilidades.

Si desea determinar cuántas veces se produce la misma combinación name y food, puede utilizar GROUP BY al grupo como registros y COUNT para determinar cuántos hay en el grupo:

SELECT name, food, COUNT(*) AS count 
FROM your_table_name 
GROUP BY name, food 

Alternativamente, si desea recuperar el número de veces sólo el nombre duplicados, tendrá una subconsulta:

SELECT name, food, 
    (
    SELECT COUNT(*) 
    FROM your_table_name 
    WHERE name = table_alias.name 
) AS count 
FROM your_table_name AS table_alias 

La primera consulta devolverá sólo una fila por name/food grupo, junto con el recuento de cuántos registros aparecen en el grupo. La segunda consulta devolverá todas las filas, con un recuento de cuántas filas tienen el mismo nombre en cada fila.

+0

He estado esperando mi tiempo ayer contando los datos manualmente, cuando hay algo como esto. Muchas gracias. – newbie

22
SELECT name, food, COUNT(food) AS cnt 
FROM table 
GROUP BY name, food 
HAVING (cnt > 1) 

Si desea que el recuento de todo, no sólo las tuplas con los duplicados, a continuación, eliminar la línea que tiene, como que va a filtrar cualquier cosa que no tenga duplicados.

Cuestiones relacionadas