Mysql
 sql >> Base de données >  >> RDS >> Mysql

Trier les données (ordre par) avant de grouper par dans mysql

Ce que vous essayez d'accomplir est connu sous le nom de maximum par groupe , qui ne peut pas être réalisé en utilisant ORDER BY . Au lieu de cela, il faut trouver le MAX() puis rejoignez le résultat dans la table :

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

Voir sur sqlfiddle .