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

se puede meter group by limit y order by

Estas en el tema de se puede meter group by limit y order by en el foro de Mysql en Foros del Web. hola se puede meter en una consulta sql , estas 3 cosas, ya que no me anda,... SELECT category_id,count(*) FROM item WHERE qty >0 group ...
  #1 (permalink)  
Antiguo 21/07/2013, 12:26
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 8 meses
Puntos: 3
se puede meter group by limit y order by

hola se puede meter en una consulta sql , estas 3 cosas, ya que no me anda,...

SELECT category_id,count(*)
FROM item
WHERE qty >0
group by category_id;
LIMIT 8,0
ORDER BY price desc



a una determianada cantidad de registros, quiero agruparlos con categori_id y contarlos...

---------------

si hago esto...


SELECT category_id
FROM item
WHERE qty >0
LIMIT 0,8


me da esto..

1
1
36
36
36
36
36
36


yo quiero qu me de

1 , 2
36, 6
  #2 (permalink)  
Antiguo 21/07/2013, 13:42
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: se puede meter group by limit y order by

Hola aldo_rengo.

Me imagino que habras escrito la consulta "a pelo" porque hay varios errores....o igual alguno de ellos se te ha pasado y por eso no te sale:

Prueba esto:

Código MySQL:
Ver original
  1. SELECT category_id,count(*)
  2. FROM item
  3. WHERE qty >0
  4. group by category_id
  5. LIMIT 0,8

(sobra un ";" que tienes por ahí suelto, el limit esta al reves y debe estar detras de ORDER BY).

Te funciona asi??
  #3 (permalink)  
Antiguo 21/07/2013, 15:03
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: se puede meter group by limit y order by

nono.. me trae cualquier cosa lo que pusiste, esta bien ordenarlo como me dijiste..

igual el limit, 0,8 andaba como puse..

pero yo digo, de los 8 registros que me trae, agrupalos en grupos de actegory_id y contalos cuanto tiene cada uno, lei que es medio complicado hacerle un group a una serie de registros con limit.... en algunos foros decian dee crear una tabla temporal, pero es medio cualquiera. como crear una tabla temporal, si varios usuarios estan usando esta pagina, con una tabla temporal seria un quilombo...
  #4 (permalink)  
Antiguo 21/07/2013, 17:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: se puede meter group by limit y order by

Código MySQL:
Ver original
  1. SELECT category_id, total
  2.     (SELECT category_id, count(*) total
  3.     FROM item
  4.     WHERE qty >0
  5.     ORDER BY price desc) T
  6. GROUP BY category_id

Este tema se ha analizado y resuelto infindiad de veces en el foro. Te convendría usar el buscador, ya que encontrarás respuestas que hemos dado más detalladas para explicar por qué debe hacerse de este modo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/07/2013, 08:57
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: se puede meter group by limit y order by

asi no me da.

lo resolvi , asi


Código MySQL:
Ver original
  1. (select category_id c
  2. from item
  3. where category_id != 0 and qty >0
  4. limit 0,16) t
  #6 (permalink)  
Antiguo 22/07/2013, 09:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: se puede meter group by limit y order by

Cita:
asi no me da.
Trata de ser más claro. Con eso no sabemos si no te da por los datos de salida, por las condiciones, o por qué razón
Por eso pedimos siempre que nos ejemplifiquen de qué están hablando... de lo contrario la ayuda se vuelve complicada.

En definitiva, si lo resolviste, mejor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 22/07/2013, 13:42
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: se puede meter group by limit y order by

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Trata de ser más claro. Con eso no sabemos si no te da por los datos de salida, por las condiciones, o por qué razón
Por eso pedimos siempre que nos ejemplifiquen de qué están hablando... de lo contrario la ayuda se vuelve complicada.

En definitiva, si lo resolviste, mejor.
tiraba error sql, como que el limit iba afuera o no se que,

igual mirando tu respuesta, vi, que se puede hacer una consulta a una subconsulta, como que se crea una tabla temporal..
  #8 (permalink)  
Antiguo 22/07/2013, 13:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: se puede meter group by limit y order by

Es lo que se denomina "tabla derivada", muy usada en todos los DBMS, porque genera una tabla que deriva de un resultado. No es exactamente una temporal, porque estas se declaran específicamente y residen en otra área de memoria con otras reglas.
Lo que no veo es por dónde mi ejemplo pudo largarte un error en el LIMIT...
¿Lo copiaste tal cual, o hiciste algún cambio?

Nota: Segín dice explícitamente le manual de referencia, LIMIT va siemrpe al final de cualquier SELECT. No puede existir ninguna cláusula después del LIMIT, aunque un LIMIT puede estar en una subconsulta, en tanto sea la última cláusula de la misma.
Otra cosa: LIMIT 0, 18, es lo mismo a poner LIMIT 18. Por si no lo notaste en mi ejemplo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 22/07/2013 a las 14:07

Etiquetas: group, limit, meter, order, registros, select, sql
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 05:57.