Maison >base de données >tutoriel mysql >Comment puis-je inclure des résultats sans rendez-vous dans les agrégations SQL COUNT ?

Comment puis-je inclure des résultats sans rendez-vous dans les agrégations SQL COUNT ?

DDD
DDDoriginal
2025-01-08 18:26:42923parcourir

How Can I Include Zero-Appointment Results in SQL COUNT Aggregations?

Gestion du nombre de rendez-vous nul dans les agrégations SQL

Les agrégations

Standard 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 :

SQLZoo : Travailler avec NULL

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