Fonction de classement dans MySQL
P粉310754094
2023-08-24 00:03:12
<p>J'ai besoin de connaître le classement de mes clients. Ici, j'ajoute la requête SQL standard ANSI correspondante selon mes besoins. S'il vous plaît, aidez-moi à le convertir en MySQL. </p>
<pre class="brush:php;toolbar:false;">SELECT RANK() OVER (PARTITION PAR Sexe ORDER BY Age) AS [Partition par sexe],
Prénom,
Âge,
Genre
DE Personne</pre>
<p>Existe-t-il une fonction permettant d'interroger les classements dans MySQL ? </p>
Il s'agit d'une solution générale qui attribue des niveaux denses sur les partitions aux lignes. Il utilise des variables utilisateur :
Veuillez noter que l'affectation des variables se trouve en
CASE
表达式内。这(理论上)解决了评估顺序问题。添加IS NOT NULL
pour gérer les problèmes de conversion de type de données et de court-circuit.PS : cela peut être facilement converti en numéros de ligne sur la partition en supprimant toutes les conditions qui vérifient les liens.
démo db fiddle
Une option consiste à utiliser une variable de classement comme celle-ci :
(SELECT @curRank := 0)
部分允许变量初始化,而无需单独的SET
Commandement.Cas de test :
Résultat :