2017-07-14 2 views
0

J'ai un problème lors de la sélection et du regroupement du tableau suivant. Le tableau "Igralci" ressemble à ceci:Comment trier l'instruction sql select afin qu'elle affiche correctement le leaderboard?

---------------------------------------------- 
|ID|U_ID|st_tock|st_srecanj|st_nizov|st_gemov| 
---------------------------------------------- 
|19| 17 | 6 |  3 | 6 | 72 | 
---------------------------------------------- 
|11| 19 | 12 |  6 | 24 | 144 | 
---------------------------------------------- 
|15| 18 | 12 |  6 | 26 | 72 | 
---------------------------------------------- 

Je voudrais trier les id de la manière suivante:

1. First looks at st_tock (if st_tock is same) -> 
2. Looks at st_srecanj (if st_srecanj is same) -> 
3. Looks at st_nizov (if st_nizov is same) -> 
4. Looks at st_gemov 

J'ai essayé:

Select * from Igralci 
group by id, st_tock, st_srecanj, st_nizov, st_gemov 
order by st_tock, st_srecanj, st_nizov, st_gemov; 

Le voulait affichage serait être (ID's):

  1. 15 (Même st_tock et st_srecanj que 11 mais il a plus st_nizov)

Répondre

1

Vous devez ajouter « Desc » ou « asc » à votre commande par article pour obtenir les résultats que vous voulez. En fonction de la sortie que vous avez fournie, vous devez ajouter "Desc" après chaque colonne dans la commande par

Select * from Igralci 
group by id, st_tock, st_srecanj, st_nizov, st_gemov 
order by st_tock desc, st_srecanj desc, st_nizov desc, st_gemov desc; 
+0

Vous êtes un sauveur de vie! Dieu te bénisse. – RageMasterGaming