Maison > base de données > tutoriel mysql > Comment compter les enregistrements répondant à une condition spécifique et calculer le pourcentage dans SQL Server ?

Comment compter les enregistrements répondant à une condition spécifique et calculer le pourcentage dans SQL Server ?

Patricia Arquette
Libérer: 2025-01-11 13:06:46
original
924 Les gens l'ont consulté

How to Count Records Meeting a Specific Condition and Calculate Percentage in SQL Server?

Comptage conditionnel et clause WHERE dans SQL Server

Dans SQL Server, vous pouvez utiliser la fonction d'agrégation COUNT() combinée à la clause WHERE pour compter le nombre d'enregistrements qui répondent à des conditions spécifiques.

Le but de l'exemple suivant est de compter le nombre d'enregistrements où la valeur MyColumn est égale à 1. Voici la requête modifiée :

<code class="language-sql">SELECT  UID, 
        COUNT(UID) AS TotalRecords, 
        SUM(ContractDollars) AS ContractDollars,
        (SELECT COUNT(*) 
         FROM dbo.AD_CurrentView AS Sub
         WHERE Sub.UID = Outer.UID AND Sub.MyColumn = 1) * 100.0 / COUNT(UID) AS PercentageOfOne
FROM    dbo.AD_CurrentView AS Outer
GROUP BY UID
HAVING  SUM(ContractDollars) >= 500000</code>
Copier après la connexion

Ce qui suit est une répartition des étapes de requête :

  1. Créez une sous-requête pour compter le nombre d'enregistrements dans chaque groupe UID qui remplissent la condition (MyColumn = 1).
  2. Utilisez les colonnes UID pour joindre la requête principale à la sous-requête.
  3. Calculez le pourcentage d'enregistrements où MyColumn est égal à 1 en divisant le nombre dans la sous-requête par le nombre total d'enregistrements pour chaque UID. Notez que le diviseur 100 est remplacé par 100.0 pour garantir une division en virgule flottante et obtenir un résultat en pourcentage plus précis.
  4. Appliquez le pourcentage calculé à la colonne PercentageOfOne.

Cette requête révisée évite les problèmes potentiels de division d'entiers en utilisant 100.0 au lieu de 100 dans le calcul du pourcentage, garantissant ainsi un résultat en virgule flottante plus précis.

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