Compter les enregistrements en fonction de la condition dans SQL Server (aucun COUNTIF requis)
Dans l'analyse des données, il est souvent nécessaire de compter les enregistrements en fonction de conditions spécifiques. Bien que SQL Server ne dispose pas de fonction COUNTIF native, il existe d'autres moyens d'obtenir cette fonctionnalité.
L'exemple suivant montre comment calculer le pourcentage d'enregistrements où la valeur MyColumn
est 1, tout en regroupant par UID
et en filtrant les enregistrements où ContractDollars
est supérieur ou égal à 500 000.
Utilisez les instructions SUM et CASE au lieu de COUNTIF
Une façon d'implémenter COUNTIF dans SQL Server consiste à utiliser la fonction SUM en conjonction avec l'instruction CASE pour vérifier les conditions requises :
<code class="language-sql">SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, SUM(CASE WHEN MyColumn=1 THEN 1 ELSE 0 END) * 100.0 / COUNT(UID) AS PercentageOf1 FROM dbo.AD_CurrentView GROUP BY UID HAVING SUM(ContractDollars) >= 500000;</code>
Dans cette requête, l'instruction CASE évalue le MyColumn
de chaque enregistrement et renvoie 1 si la valeur est 1 et 0 sinon. Ensuite, la fonction SOMME compte le nombre d'enregistrements qui remplissent la condition.
Le pourcentage d'enregistrements avec la valeur souhaitée peut être obtenu en divisant la SOMME de l'expression CASE par le nombre total d'enregistrements (COUNT(UID)) et en multipliant par 100. Notez que 100,0 est utilisé comme nombre à virgule flottante pour participer à l'opération ici afin de garantir que le résultat est un nombre à virgule flottante et d'éviter la perte de précision causée par la division entière.
Autres notes
<code class="language-sql">SUM(CASE WHEN ISNULL(MyColumn,0)=1 THEN 1 ELSE 0 END)</code>
Cela garantit que les valeurs NULL sont traitées comme 0, ce qui les empêche de fausser les décomptes.
En combinant ces techniques, vous pouvez compter les enregistrements en fonction de conditions spécifiques dans SQL Server, fournissant ainsi des informations précieuses pour l'analyse des données.
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!