Wie kann man "Null" / "0" als COUNT-Aggregat angeben?
Ich habe mich nur ein bisschen mit SQL beschäftigt. Ich glaube nicht, dass ich die Frage brillant formulieren kann - also lass es mich dir zeigen.
Ich habe zwei Tische, einen angerufenen, einen angerufenen Termin. Ich versuche, die Anzahl der Termine einer Person zurückzugeben (auch wenn sie null hat). Termin enthält dieperson_id
und da ist einperson_id
pro termin. SoCOUNT(person_id)
ist ein vernünftiger Ansatz.
Die Abfrage:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
Wird korrekt zurückgegeben, wie viele Termine eine person_id hat. Eine Person mit 0 Terminen wird jedoch nicht zurückgegeben (offensichtlich, da sie nicht in dieser Tabelle enthalten ist).
Wenn ich die Anweisung ändere, um person_id aus der Personentabelle zu nehmen, sehe ich ungefähr so aus:
SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM appointment
JOIN person ON person.person_id = appointment.person_id
GROUP BY person.person_id;
Dies wird jedoch immer noch nur eine person_id zurückgeben, die einen Termin hat und nicht das, was ich will, was eine Rückkehr mit Personen ist, die 0 Termine haben!
Irgendwelche Vorschläge bitte?