Maison >base de données >tutoriel mysql >Comment puis-je inclure des résultats sans rendez-vous dans les agrégations SQL COUNT ?
Gestion du nombre de rendez-vous nul dans les agrégations SQL
Les agrégationsStandard SQL COUNT
peuvent manquer des individus sans rendez-vous. La solution consiste à utiliser des jointures externes pour inclure ces entrées à nombre nul.
Illustrons :
Cette requête compte les rendez-vous par personne mais omet ceux sans rendez-vous :
<code class="language-sql">SELECT person_id, COUNT(person_id) AS appointment_count FROM appointment GROUP BY person_id;</code>
Pour inclure les individus sans rendez-vous, utilisez un LEFT JOIN
avec la table person
comme table de conduite :
<code class="language-sql">SELECT p.person_id, COUNT(a.person_id) AS appointment_count FROM person p LEFT JOIN appointment a ON p.person_id = a.person_id GROUP BY p.person_id;</code>
Ce LEFT JOIN
renvoie NULL
pour appointment.person_id
où aucun rendez-vous n'existe. COUNT
ignore les valeurs NULL
, signalant correctement aucun rendez-vous pour ces personnes.
Cette approche repose sur la compréhension du fonctionnement des jointures externes. Un LEFT JOIN
garantit que toutes les lignes du tableau de gauche (dans ce cas, person
) sont incluses, même s'il n'y a aucune ligne correspondante dans le tableau de droite (appointment
).
Pour en savoir plus sur les jointures externes et la gestion des valeurs NULL
, reportez-vous à des ressources telles que :
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!