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

Limite por grupo

Estas en el tema de Limite por grupo en el foro de Mysql en Foros del Web. Hola mi consulta es la siguiente: Quiero realizar una consulta a una tabla con un limite por ejemplo de 2 registros por cada id_cliente diferente ...
  #1 (permalink)  
Antiguo 06/07/2009, 12:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 22
Antigüedad: 15 años, 11 meses
Puntos: 0
Limite por grupo

Hola mi consulta es la siguiente:

Quiero realizar una consulta a una tabla con un limite por ejemplo de 2 registros por cada id_cliente diferente ejemplo:

registros en la tabla
campos: id, id_ciente, texto

1, 1, 'texto1'
2, 1, 'texto2'
3, 1, 'texto3'
4, 2, 'texto4'
5, 2, 'texto5'
6, 2, 'texto6'

Quiero hacer una consulta que solo me traiga los registros en este caso:
( 1, 2, 4, 5 )

Solo 2 registros por cliente

No se si se entiende, pero se agradece la ayuda
  #2 (permalink)  
Antiguo 06/07/2009, 13:23
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Limite por grupo

lastimosamente mysql ni ningún RDBMS que conozco soporta la clausula limit en una consulta y no es posible hacer este tipo de operaciones que en muchas ocasiones resultan muy utiles.

Es posible que haciendo una función en mysql, pueda establecerse un ciclo que se termine deacuerdo al numero de clientes existentes y realizar una sentencia en el interior del ciclo con union all.

Otra opción que se me ocurre (Aunque un poco compleja) es enumerar los registros (De la forma como lo propone gnzsoloyo en el penutimo post de las faq's de mysql) y en la condición, establecer que ese campo sea <=2 por cada group by.

Nos cuentas como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 04:45.