Lo que intenta lograr se conoce como máximo por grupo
, que no se puede lograr usando ORDER BY . En su lugar, uno debe encontrar el MAX() y luego vuelva a unir el resultado a la tabla:
SELECT prd_data.* FROM prd_data NATURAL JOIN (
SELECT sub_prd_id, MAX(created_at) created_at
FROM prd_data
GROUP BY sub_prd_id
) t
Véalo en sqlfiddle .