Problema combinando GROPU BY + LIMIT

Iniciado por Skeletron, 23 Marzo 2010, 20:35 PM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Hola gente..

Resulta que quiero hacer algo, y no se como :)

Yo quiero que una sentencia, tome 50 registros, los agrupe por X y los devuelva.

Pero si pongo:
SELECT * FROM usuarios GROUP BY edad LIMIT 50
Lo que devuelve, son 50 entradas de GROUP BY, y ese group by, esta basado en TODOS los registros de la tabla...

Me explico bien?..

Necesito:
TOMAR los primeros 50 registros
Agruparlos por edad (solo a los primeros 50)

Todo en 1 sentencia..
Se puede?!

Nakp

mejor usa order by :P group by se usa cuando tienes un operador aritmetico en la sentencia (sum, count, etc)

Código (sql) [Seleccionar]
SELECT * FROM usuarios ORDER BY edad LIMIT 50
Ojo por ojo, y el mundo acabará ciego.

Skeletron

#2
Cita de: Nakp en 23 Marzo 2010, 21:50 PM
mejor usa order by :P group by se usa cuando tienes un operador aritmetico en la sentencia (sum, count, etc)

Código (sql) [Seleccionar]
SELECT * FROM usuarios ORDER BY edad LIMIT 50


Porque en este foro nadie responde las preguntas?
Con todo el respeto NAKP!!!!!!!!!!.............

Porque la gente SUPONE tanto?

Si NAKP, tengo operadores aritmeticos.. Pero quieres que te pase toda la sentencia? no entenderías nada, solamente te complicaría mas y mas tu respuesta.

Tengo una tabla de VOTOS, quiero devolver la cantidad de votos y la sumatoria total de ellos por usuario.

Algo así:
Código (sql) [Seleccionar]
SELECT usuario, COUNT(usuario), SUM(valor_del_voto) FROM votos GROUP BY usuarios

pero quiero devolver el "AGRUPAMIENTO" solamente de los primeros 50... Y lo quiero así porque soy así, y cuando mi madre ma parió me dijo: "TU HIJO, HAS COSAS INCOHERENTES TODA TU VIDA"... Así que tu tienes que tener en cuenta eso, entonces no me preguntas porque solamente el "AGRUPAMIENTO" de los primeros 50, y no de todos, y ahí es cuando me dices:

Código (sql) [Seleccionar]
SELECT usuario, COUNT(usuario), SUM(valor_del_voto) FROM votos GROUP BY usuarios LIMIT 50

Y yo te respondo:
No NAKP, esa sentencia devuelve 50 registros GROUP BY, y no el GROUP BY de los 50 registros (ya esta ordenada la tabla.. así QUE NADIE SE ATREVA A NOMBRAR LA PALABRA CLAVE: ORDER BY)

^Tifa^

CitarPorque en este foro nadie responde las preguntas?

Que no lo hago yo :-(   :-(   :-(   :-( 

CitarPorque la gente SUPONE tanto?

Porque nadie esta en el juicio de comprender a 100% lo que a lo mejor estas peticionando. Entiendo que a lo mejor lo que Napk te propuso no es lo que buscabas, pero su respuesta fue un intento de una pregunta que a lo mejor no entendio completamente... no deberias responder de esa forma.

Ya no tengo deseos de responder  :(

Skeletron

No noooo!!..
Yo no he respondido mal!

Lo que pasa, es que mendiante un texto jamas sabras como fue mi actitud a la hora de escribir el texto...
Debes creer que lo dije de mala manera, pero no fue así..


Aqui esta la respuesta:

Código (sql) [Seleccionar]
select para, sum(valor) as totalvotos, count(para) as cuantos  from (select * from votos limit 50) as votos  group by para



No me quiero llevar mal con ustedes.. Obviamente.


Fijate que puse: "CON TODO EL RESPETO NAKP!!!!!!!!!!!!.............."

Nakp

Ojo por ojo, y el mundo acabará ciego.