Mi sono appena un po 'bloccato con un po' di SQL. Non penso di poter esprimere brillantemente la domanda - quindi lascia che te lo mostri.Come includere "zero"/"0" in COUNT aggregato?
Ho due tavoli, uno chiamato persona, uno chiamato appuntamento. Sto cercando di restituire il numero di appuntamenti di una persona (incluso se hanno zero). Appuntamento contiene il person_id
e c'è un person_id
per appuntamento. Quindi COUNT(person_id)
è un approccio ragionevole.
La query:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
tornerà correttamente, il numero di appuntamenti un person_id ha. Tuttavia, una persona che ha 0 appuntamenti non viene restituita (ovviamente poiché non si trovano in quella tabella).
Ottimizzare la dichiarazione di prendere person_id dal tavolo persona mi dà qualcosa di simile:
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;
Questo, tuttavia, sarà ancora restituire solo un person_id che ha un appuntamento e non quello che voglio, che è un ritorno con le persone chi ha 0 appuntamenti!
Qualche suggerimento, per favore?
Il GRUPPO BY sembra un errore nella domanda originale poiché la tabella non è inclusa nella query. –
@JoachimIsaksson Il mio errore. Ovviamente :) –