J'ai la table ci-dessous, qui stocke le rang de personne participant à des événements respectifs.
Event_Running et Event_Jumping sont les événements et les rangs stockés. P>
| Standing | PersonID | RunningRank | JumpingRank | | 1 | 6 | 1 | 2 | | 2 | 4 | 9 | 3 | | 3 | 1 | 4 | 8 | | 4 | 3 | 5 | 0 | | 5 | 2 | 10 | 6 |
3 Réponses :
Vous pouvez utiliser quelque chose de similaire à celui ci-dessous
select PersonID,
RunningRank,
JumpingRank,
(RunningRank + JumpingRank) as Total
from ranks
order by Total asc
limit 20;
C'est tout droit, laissez-moi essayer avec les données réelles.
Voici votre requête.
set @row_number = 0;
select (@row_number:=@row_number + 1) as standing, personid, event_running, event_longjump from ranks
where event_running < 20 and event_longjump < 20
order by
case when if(event_longjump=0,event_running ,event_longjump) < event_running
then event_longjump else event_running end
Vos critères de tri sont un peu vagues. Je suppose que vous voulez trier sur la base de cumulatif des rangs dans tous les événements et de son score de saut.
select PersonID,
RunningRank,
JumpingRank,
(JumpingRank + RunningRank) as cumulativeRank
from ranks
ORDER BY cumulativeRank, JumpingRank aesc
limit 20;
C'est une idée soignée, laissez-moi vérifier avec les données réelles
Veuillez m'expliquer sur la personne ID 3. Selon les commentaires sur la question, vous avez choisi ID 4 sur ID1 car son rang de saut de saut était faible. Donc, vous serez également trier contre le rang de saut. Est-ce exact?
Oui, le classement cumulatif ne fonctionnerait pas, en cas de JumpingRank: 1 et RingeRank: 19 Cette personne ne viendrait pas au sommet du conseil d'administration.
Cela fonctionnera .. Mais j'en suis sûr des critères de tri que vous utilisez ... Mon explication ci-dessus est correcte?
Qu'est-ce qu'un classement
0 code>? quelque chose comme n'a pas fini i>?Pourquoi
PERSONID code> 4 est-il un meilleur classement que 1? Même question pour 3 et 2Où est la personne n ° 5?
@ ϻᴇᴛᴀʟ "Les rangs ci-dessus sont ignorés" i>
@CID Rank 0 serait une personne qui n'a jamais participé, PersonID 4 a un rang de saut de 3 ans, il a donc eu un meilleur rang
Comment commanderiez-vous quelqu'un qui a un rang d'exécution 9 et qui saute 3 contre quelqu'un qui a couru 3 et sautant 9?
Oui, n'en pensé pas, peut-être une après l'autre dans n'importe quel ordre.