Maison > base de données > tutoriel mysql > Comment puis-je calculer dynamiquement les pourcentages de notes en SQL ?

Comment puis-je calculer dynamiquement les pourcentages de notes en SQL ?

Susan Sarandon
Libérer: 2025-01-17 04:12:09
original
956 Les gens l'ont consulté

How Can I Dynamically Calculate Grade Percentages in SQL?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal