50 votes

Commande à plusieurs niveaux

J'ai une table contenant des enregistrements avec des champs tels que le nom, la note, etc.

Je veux d'abord trier sur la base de l'évaluation en limitant les résultats à 20, puis sur cet ensemble de résultats, je veux appliquer le tri sur la base du nom.

Je sais que pour trier, il faut utiliser une requête comme celle-ci

Select * from table order by rating Desc limit 20

mais sur ce jeu de résultats comment appliquer un autre niveau de tri ? Comment puis-je combiner ces deux tris dans une seule déclaration sqlite ?

130voto

ThiefMaster Points 135805

Vous pourriez utiliser par exemple ORDER BY rating DESC, name ASC pour trier par note et ensuite, si les notes sont égales, par nom.

20voto

JuanBoca Points 674

Cette requête devrait faire l'affaire :

SELECT * FROM (SELECT * FROM table ORDER BY rating DESC LIMIT 20) ORDER BY name

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X