2008-09-18 7 views

Répondre

8

Ajouter DESC à la clause GROUP BY, par ex. :

GROUP BY myDate DESC 
1

ORDER BY foo DESC?

6

Comme le MySQL documentation dit,

SELECT * FROM foo GROUP BY bar 

est équivalent à

SELECT * FROM foo GROUP BY bar ORDER BY bar 

Le comportement par défaut ne peut pas être changé, mais vous pouvez utiliser

SELECT * FROM foo GROUP BY bar ORDER BY bar DESC 

sans éprouver des pénalités de vitesse le tri sera effectué sur le champ groupé de toute façon. Par ailleurs, lorsque le tri n'est pas important, vous pouvez obtenir une (petite) accélération en utilisant ORDER BY NULL.

10

Vous devez utiliser les tables dérivées sur votre SQL. Par exemple, si vous voulez ramasser la dernière ligne pour une activité spécifique que vous êtes tentative d'utilisation:

select * 
from activities 
group by id_customer 
order by creation_date 

mais il ne fonctionne pas. Essayez plutôt:

SELECT * 
FROM (select * 
     from activities 
     order by creation_date desc) sorted_list 
GROUP BY id_customer 
Questions connexes