MySQL - no puedo obtener el valor mas repetido si se repite varias veces

   
Vista:

no puedo obtener el valor mas repetido si se repite varias veces

Publicado por undertaker (21 intervenciones) el 29/07/2014 06:39:00
Eso no puedo obtener el valor mas repetido
solo logro obtener cuando es un registro

1
2
3
4
5
SELECTnombre, count(id) as contando
FROM producto
GROUP BY nombre
ORDER BY contando DESC
LIMIT 1

Aca puedo obtener el mas repetido, pero cuando son dos los mas repatido es imposible :S

nombre|| cantidad
harina 3
azucar 2
pan 2

Los mas repetidos son azucar y pan...no puedo obtener eso...solo me sale uno
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

no puedo obtener el mas repetido

Publicado por xve (898 intervenciones) el 29/07/2014 11:37:52
Hola Undertaker, la verdad es que no te entiendo... según lo que nos comentas, el mas repetido es "harina" con 3... azúcar y pan tienes 2.

Si nos puedes comentar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

no puedo obtener el mas repetido

Publicado por undertaker (21 intervenciones) el 29/07/2014 22:30:45
Lo que quiero obtener es la moda
quiere decir los que mas se repiten

en este caso seria pan y azucar

olvida el ejemplo de arriba me equivoque en ves de 3 es 1 en harina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

no puedo obtener el valor mas repetido si se repite varias veces

Publicado por xve (898 intervenciones) el 30/07/2014 08:06:38
Ok, entendido... entiendo que el resultado máximo de la consulta, son dos o mas valores iguales.

La única manera que se me ocurre, es con dos consultas vinculadas...

1
2
3
4
5
SELECT s1.nombre, count(s1.id) as contando, s2.maximo
FROM producto s1,
(SELECT count(id) as maximo FROM producto GROUP BY nombre ORDER BY contando DESC LIMIT 1) s2
GROUP BY s1.nombre
HAVING contando=maximo

Lo que hacemos es obtener el valor máximo con tu consulta:
(SELECT count(id) as maximo FROM producto GROUP BY nombre ORDER BY contando DESC LIMIT 1) s2
para luego mostrar todos los resultados que sean igual al maximo... de esta manera, pueden ser 2 o mas resultados que cumplan con el valor máximo.

Espero que te sirva... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

no puedo obtener el valor mas repetido si se repite varias veces

Publicado por SuperIndio (35 intervenciones) el 30/07/2014 21:27:34
MUY PERO MUY PERO DEMASIADO FACIL, ES ASI:

SELECT NOMBRE, COUNT(*)
FROM PRODUCTO
GROUP BY NOMBRE
HAVING COUNT(*) > 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

no puedo obtener el valor mas repetido si se repite varias veces

Publicado por undertaker (21 intervenciones) el 31/07/2014 06:32:12
gracias xve me ha funcionadp ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar