Calculer efficacement les pourcentages de notes à partir de données non structurées avec SQL
Le stockage des notes sous forme de texte libre dans une base de données présente des défis lors du calcul des répartitions en pourcentage des notes. Cet article propose des solutions SQL pour calculer ces pourcentages pour toutes les notes, même sans valeurs de note prédéfinies.
Requête SQL pour le calcul du pourcentage
Cette requête SQL exploite la fonction over()
pour un calcul efficace du pourcentage sur des valeurs de note uniques :
<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER () FROM MyTable GROUP BY Grade;</code>
La fonction over()
calcule le nombre total de lignes sur l'ensemble du tableau, permettant le calcul du pourcentage sans avoir besoin de spécifier toutes les notes possibles.
Requête SQL alternative (pour les bases de données sans over()
Fonction)
Pour les bases de données dépourvues de la fonction over()
, cette requête alternative utilise une sous-requête :
<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / (SELECT COUNT(*) FROM MyTable) FROM MyTable GROUP BY Grade;</code>
Cette approche utilise une sous-requête pour obtenir le nombre total de lignes, puis calcule les pourcentages.
Remarque importante : Ces solutions calculent avec précision les pourcentages lorsque les données de note sont stockées sous forme de valeurs à un seul caractère (par exemple, « A », « B », « C »). Les formats de note plus complexes dans du texte non structuré nécessitent un prétraitement pour extraire les valeurs de note avant d'appliquer ces requêtes SQL.
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!