2011-04-23 13 views
5

¿Qué consulta de MySQL debería usar para obtener solo las filas repetidas X veces?MySQL: cómo hacer que las filas se repitan x veces

Ejemplo (una estúpida ^^):

John likes apples. 
Dave likes apples. 
Bough likes bananas. 
Light likes apples. 
Wiky likes bananas. 

Quiero una consulta que devuelve sólo frutas del agrado de 3 personas (manzanas en mi ejemplo). ¡Salud!

+0

he estado muriendo por saber éste - todo lo que tengo es hacks, me gustaría ver una respuesta real. – Malvolio

+2

¿Qué quiere decir con "solo filas repetidas X veces?" –

+1

¿Podría darnos un ejemplo de lo que considera una fila repetida? – elitalon

Respuesta

2

quiero una consulta que devuelve simplemente frutos del agrado de 3 personas (manzanas en mi ejemplo)

Prueba esto:

SELECT fruit_name FROM `table` group by fruit_name having count(fruit_name)>=3; 
+0

¡Gran Harry Joy, aquí hay una persona que ayuda! gracias, lo has resuelto! –

+0

@Nadj: usted siempre es bienvenido. Pero la próxima vez haga preguntas con una descripción adecuada y clara. –

+0

Ok Harry, lo haré, gracias. –

0

Si usted está tratando de contar cada fila repetida de una columna:

select count(*), column1 from table group by column 

especificar "columna" como la columna que desea saber si se repite. Si desea ver si se repite más de una columna, sepárela con comas.

select count(*), column1, column2 from table group by column1,column2 

EDIT:

Y si desea obtener sólo filas con repeticiones X:

select c, column1 from (select count(*) as c, column1 from table group by column1) where c = X 
2

si "dirección" es la columna por la que defina si 2 filas son los mismos, entonces:

select address, count(address) as cnt from mailing_list group by address having cnt = $x order by cnt; 
Cuestiones relacionadas