Maison > base de données > tutoriel mysql > Comment calculer les pourcentages de valeurs dans une table SQL Server ?

Comment calculer les pourcentages de valeurs dans une table SQL Server ?

Linda Hamilton
Libérer: 2025-01-17 04:16:13
original
354 Les gens l'ont consulté

How to Calculate Percentages of Values in a SQL Server Table?

Calculs de pourcentage SQL Server : trois approches

Ce guide présente trois méthodes efficaces pour calculer les pourcentages de valeurs dans une table SQL Server. Chaque méthode permet d'obtenir le même résultat, offrant une flexibilité en fonction de vos préférences et de la structure de la base de données.

Méthode 1 : Efficacité de la fonction de fenêtre

Cette approche exploite la fonction de fenêtre OVER() pour une solution concise et efficace :

<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER() AS Percentage
FROM MyTable
GROUP BY Grade;</code>
Copier après la connexion

La clause OVER() calcule le nombre total sur toutes les lignes, fournissant une base directe pour le calcul du pourcentage.

Méthode 2 : Approche universelle

Une méthode plus simple, adaptée à différents dialectes SQL, implique une sous-requête :

<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / (SELECT COUNT(*) FROM MyTable) AS Percentage
FROM MyTable
GROUP BY Grade;</code>
Copier après la connexion

Cela divise directement le nombre de chaque note par le nombre total de lignes obtenu à partir de la sous-requête.

Méthode 3 : Expression de table commune (CTE)

Pour une meilleure lisibilité et modularité, un CTE peut être utilisé :

<code class="language-sql">WITH GradeCounts AS (
    SELECT Grade, COUNT(*) AS GradeCount
    FROM MyTable
    GROUP BY Grade
)
SELECT Grade, GradeCount * 100.0 / (SELECT SUM(GradeCount) FROM GradeCounts) AS Percentage
FROM GradeCounts;</code>
Copier après la connexion

Le CTE calcule d'abord le décompte pour chaque note, puis la requête principale calcule le pourcentage en utilisant le décompte total dérivé du CTE.

Les trois méthodes donnent le même format de sortie :

<code>Grade | Percentage
------------------
A      | 5%
B      | 15%
C      | 40%
D      | 40%</code>
Copier après la connexion

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