Comptage conditionnel dans les fonctions COUNT()
Vous pouvez incorporer des conditions directement dans votre COUNT()
fonction. Ceci est particulièrement utile lorsque vous devez compter les lignes répondant à différents critères dans une seule requête SQL, évitant ainsi le recours à plusieurs requêtes ou sous-requêtes. Par exemple, compter le nombre de « Managers » et d'« Employés » dans une seule SELECT
déclaration.
La clé est d'utiliser une expression CASE
dans la fonction COUNT()
. COUNT()
ne compte que les valeurs non NULL. Par conséquent :
<code class="language-sql">SELECT COUNT(CASE WHEN Position = 'Manager' THEN 1 ELSE NULL END) AS ManagerCount FROM ...</code>
Cela ne compte que les lignes où Position
est « Manager ». Le ELSE NULL
garantit que les lignes ne remplissant pas la condition ne sont pas comptées.
Alternativement, vous pouvez utiliser SUM()
:
<code class="language-sql">SELECT SUM(CASE WHEN Position = 'Manager' THEN 1 ELSE 0 END) AS ManagerCount FROM ...</code>
Cela permet d'obtenir le même résultat ; SUM()
ajoute 1 pour chaque 'Manager' et 0 pour tous les autres. Cette approche peut être légèrement plus efficace dans certains systèmes de bases de données. Les deux méthodes évitent le besoin d'une clause WHERE
distincte, ce qui les rend idéales pour compter plusieurs catégories simultanément.
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!