Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/06/2008, 12:35
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: limitar repetidos a dos

Si no es necesario que vayan seguidos en el número de id, esto te mostrará dos de cada, el que tenga el primer id y el que tenga el último id de cada uno de esos campos cuyo contenido aparezca repetido. He añadido a la consulta un campo id.

SELECT a.id, a.campoo FROM tutabla a INNER JOIN (SELECT MAX(id) as maximo, MIN(id) AS minimo, campoo FROM tutabla GROUP BY campoo HAVING COUNT(campoo )>1 ) AS T1 ON a . campoo =T1 . campoo WHERE a.id = T1.maximo OR a.id = T1.minimo ORDER BY a.campoo, a.id

El procedimiento es hacer una selección agrupando por campoo de aquellos que tienen repeticiones, seleccionando el id mínimo y el máximo por grupo. Luego por encima un inner join basado en campoo con una selección de la tabla y haciendo coincidir el id de tu tabla con el máximo o bien con el mínimo, y ordenando los registros seleccionados por campo e id de la tabla.

De todas formas, según creo, este tipo de cosas es más fácil hacerlas con programación.

Última edición por jurena; 18/06/2008 a las 13:52