Maison >base de données >tutoriel mysql >Comment inclure des résultats nuls dans les agrégats SQL COUNT à l'aide de jointures externes ?
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!