sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan medtager man nul/0 resultater i COUNT aggregat?

Du vil have en ydre joinforbindelse til dette (og du skal bruge person som "kørende" bord)

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;

Grunden til at dette virker er, at den ydre (venstre) join vil returnere NULL for de personer, der ikke har en tid. Den samlede funktion count() tæller ikke NULL værdier og dermed får du et nul.

Hvis du vil lære mere om outer joins, er her en fin vejledning:http://sqlzoo.net/wiki/Using_Null



  1. Java Stored Procedure vs PL/SQL Stored Procedure

  2. Dumping af datablokke

  3. Oracle:Dage mellem to dato og Ekskluder hverdage hvordan man håndterer negative tal

  4. SQL-serverlogforsendelse og installation og konfiguration -2