Maison >base de données >tutoriel mysql >Comment inclure des résultats nuls dans les agrégats SQL COUNT à l'aide de jointures externes ?

Comment inclure des résultats nuls dans les agrégats SQL COUNT à l'aide de jointures externes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-08 18:17:43303parcourir

How to Include Zero Results in SQL COUNT Aggregates Using Outer Joins?

Gestion des comptes nuls dans les agrégats SQL COUNT avec jointures externes

La fonction d'agrégation COUNT de SQL compte généralement les valeurs non nulles, en omettant les entités avec des résultats nuls. Pour inclure ces entités à nombre nul, utilisez une jointure externe. Les jointures externes, contrairement aux jointures internes, conservent toutes les lignes d'une ou des deux tables, même s'il n'y a aucune correspondance dans l'autre table.

Illustrons avec deux tableaux : person et appointment. appointment liens vers person via person_id. Pour compter les rendez-vous par personne, y compris ceux avec zéro rendez-vous, utilisez un LEFT JOIN :

<code class="language-sql">SELECT
  p.person_id,
  COUNT(a.person_id) AS number_of_appointments
FROM
  person p
LEFT JOIN
  appointment a
ON
  p.person_id = a.person_id
GROUP BY
  p.person_id;</code>

Cela LEFT JOIN garantit que toutes les lignes de la table person (alias p) sont incluses. Si une personne n'a pas de rendez-vous, a.person_id sera NULL et COUNT(a.person_id) renverra 0 pour cette personne. Cela fournit un décompte complet de toutes les personnes, reflétant avec précision les cas sans rendez-vous. La clause GROUP BY garantit que le décompte est regroupé par personne.

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!

Déclaration:
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