Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Agrupar resultados

Estas en el tema de Agrupar resultados en el foro de Bases de Datos General en Foros del Web. Hola amigos. necesito de su ayuda, resulta que tengo q hacer una sentencia y tengo una idea pero falta la puntada final. Necesito agrupar los ...
  #1 (permalink)  
Antiguo 01/10/2010, 12:50
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 11 meses
Puntos: 145
Agrupar resultados

Hola amigos.

necesito de su ayuda, resulta que tengo q hacer una sentencia y tengo una idea pero falta la puntada final.

Necesito agrupar los resultados de una tabla y rescatar solo 10 resultados, pero esos 10 deben ser los que mas se repiten. y dentro de esos 10 deben ser rescatados al azar.

Código:
SELECT * FROM noticias GROUP BY categoria ORDER BY RAND()
esa sentencia tengo, en donde rescato todos los resultados agrupados por el campo categoria y se ordenan al azar, pero me falta agregar ademas q solo se rescaten los 10 con mas concurrencia, pues quedaria algo asi

Código:
SELECT * FROM noticias GROUP BY categoria ORDER BY RAND() LIMIT 10
pero me saca dentro de todos los resultados y no los 10 con mas repeticiones.

como puedo hacer eso?

alguien sabe?

saludos
__________________
http://chicho.ninja yiaaaa
  #2 (permalink)  
Antiguo 01/10/2010, 13:07
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 11 meses
Puntos: 145
Respuesta: Agrupar resultados

Bueno evolucione algo mi consulta

Código:
select categoria, count(*) as cantidad from noticias group by categoria order by cantidad desc limit 10
me falta solo un detalle, que entre esos 10 resultados, que son los mas repetidos, se ordenen al azar.

aver si lo logro :D

bueno eso de tirarlos al azar lo puedo hacer directamente con php, pero quiero saber si es q se puede desde sentencia sql

saludos.
__________________
http://chicho.ninja yiaaaa
  #3 (permalink)  
Antiguo 01/10/2010, 13:38
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Agrupar resultados

Buenas Tardes Cherivera, puedes utilizar subconsultas para ordenar el resultado de tu consulta nuevamente, algo así:

Código SQL:
Ver original
  1. SELECT * FROM (
  2. SELECT categoria, COUNT(*) AS cantidad FROM noticias
  3. GROUP BY categoria
  4. ORDER BY cantidad DESC LIMIT 10) T
  5. ORDER BY RAND();

Pruébalo y comentas si te funcionó.

Saludos
Leo.
  #4 (permalink)  
Antiguo 01/10/2010, 14:56
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 11 meses
Puntos: 145
Respuesta: Agrupar resultados

muchas gracias leonardo_josue, ya casi casi, a punto jejeje.


saludos.
__________________
http://chicho.ninja yiaaaa
  #5 (permalink)  
Antiguo 01/10/2010, 15:15
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 11 meses
Puntos: 145
Respuesta: Agrupar resultados

te cuento que hice un copy/paste de tu solucion y funciono enseguida jejejeje, gracias
__________________
http://chicho.ninja yiaaaa

Etiquetas: agrupar, resultados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:13.