sql >> Databáze >  >> RDS >> PostgreSQL

Jak zahrnout nula / 0 výsledků do souhrnu COUNT?

K tomu chcete vnější spojení (a musíte použít osobu jako "řídící" stůl)

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;

Důvod, proč to funguje, je ten, že vnější (levé) spojení vrátí NULL pro osoby, které nemají schůzku. Agregační funkce count() nebude počítat NULL hodnoty, a tak dostanete nulu.

Pokud se chcete dozvědět více o vnějších spojeních, zde je pěkný návod:http://sqlzoo.net/wiki/Using_Null



  1. Replikace MySQL:Chybné transakce v replikaci založené na GTID

  2. Optimalizace překrývajících se dotazů Část 1:Úvod a vylepšené řešení T-SQL

  3. Podmíněný příkaz JOIN SQL Server

  4. 3 způsoby, jak vypsat všechny uložené procedury v databázi PostgreSQL