Cita: me sale la primera marca que encuentra en vez de la marca que tenga el precio mas bajo
Es absolutamente natural... Por lo que veo, estás usando MySQL (asumo eso), y no conoces el funcionamiento de su lógica.
Este tema se ha tratado INFINIDAD de veces, y SIEMPRE damos la misma explicación...
El problema del GROUP BY es precisamente que usa el primer valor encontrado para ese o esos campos, y "esconde" los restantes resultados.
Si quieres algo que esté ordenado y agrupado, debes ordenar primero, y agrupar después. Adicionalmente, no estás ordenando en base a todos los criterios necesarios.
Código SQL:
Ver originalSELECT fecha_rastreo, precio_comp0, marca0, referencia
FROM
(SELECT
r.fecha_rastreo,
p0.precio precio_comp0,
p0.nombre_producto marca0,
p0.referencia
FROM datos_rastreo p0 INNER JOIN rastreo r ON p0.id_rastreo=r.id_rastreo
WHERE p0.tienda='ebay'
ORDER BY p0.precio DESC, p0.nombre_producto ASC, fecha_rastreo ASC) Tabla1
GROUP BY referencia, fecha_rastreo
Por cierto, los AS son innecesarios.