Calcul dynamique du pourcentage SQL : efficace et complet
Question :
Étant donné une table SQL contenant les noms d'utilisateur et les notes, vous devez calculer le pourcentage d'occurrence de chaque note possible. Le défi est de mettre en œuvre cela de manière dynamique, en permettant une réactivité à partir de n'importe quel champ de texte ouvert.
Solution :
Il existe trois manières principales d'utiliser les instructions SQL pour calculer des pourcentages :
Méthode 1 : Optimisation de l'efficacité
<code class="language-sql">select Grade, count(*) * 100.0 / sum(count(*)) over() from MyTable group by Grade</code>
Cette méthode est la plus efficace, utilisant la fonction "over()" pour calculer le pourcentage en fonction de l'ensemble des données.
Méthode 2 : Applicabilité universelle
<code class="language-sql">select Grade, count(*) * 100.0 / (select count(*) from MyTable) from MyTable group by Grade;</code>
Cette méthode fonctionne avec n'importe quelle version de SQL, qu'elle prenne en charge ou non la fonction "over()". Il calcule le pourcentage en fonction du nombre total de lignes du tableau.
Méthode 3 : Expression de table commune (CTE)
<code class="language-sql">with t(Grade, GradeCount) as ( select Grade, count(*) from MyTable group by Grade ) select Grade, GradeCount * 100.0/(select sum(GradeCount) from t) from t;</code>
Cette méthode est moins efficace que les deux précédentes, mais peut être plus utile dans des calculs plus complexes. Il utilise CTE pour calculer indépendamment les notes et les pourcentages.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!