Código sql:
Ver originalSELECT producto, gama, fecha FROM tabla INNER JOIN
(SELECT gama, MAX(fecha) fechains FROM tabla GROUP BY gama)t1
ON t1.gama=tabla.gama AND t1.fechains=tabla.fecha
ORDER BY tabla.fecha GROUP BY tabla.gama DESC LIMIT 5
Es sólo a modo de orientación. No lo he probado. He añadido el segundo group by tabla.gama por si pasan dos productos de la misma gama y la misma fecha. Cogerá el primero.
Esta es la idea, pero como te dice huesos52, con los datos podríamos ayudarte mejor.