sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur inkluderar man noll/0 resultat i COUNT sammanställning?

Du vill ha en yttre sammanfogning för detta (och du måste använda person som "körbord")

SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM person 
  LEFT JOIN appointment ON person.person_id = appointment.person_id
GROUP BY person.person_id;

Anledningen till att detta fungerar är att den yttre (vänster) joinen kommer att returnera NULL för de personer som inte har en tid. Den aggregerade funktionen count() kommer inte att räknas NULL värden och därmed får du en nolla.

Om du vill lära dig mer om yttre sammanfogningar, här är en trevlig handledning:http://sqlzoo.net/wiki/Using_Null



  1. Oracle-text försvinner med hängslen och jokertecken

  2. SQL Server delar upp CSV i flera rader

  3. Beställ efter COUNT per värde

  4. Hibernate Långsam för att få Postgres-anslutning