title: SQL Group By including empty rows
body: <p>For the sake of this question, let's suppose this table structure:</p>
  
  <pre><code>People:
  PersonID int PK
  Name varchar(50)
  Place int NULL FK -&gt; Places.PlaceID
  MovedIn datetime
  
  Places:
  PlaceID int PK
  Name varchar(50)
  </code></pre>
  
  <p>I want to determine how many people live at each place:</p>
  
  <pre><code>SELECT pla.PlaceID, COUNT(*)
  FROM Places AS pla
  LEFT JOIN People as peo ON peo.PlaceID = pla.PlaceID
  GROUP BY pla.PlaceID
  </code></pre>
  
  <p>This query will omit places that have no people living there. Is there any way to make it count 0 instead?</p>
  
  <p>(I'm targetting SQL Server 2005, in the off chance that it matters)</p>
  
  <p>EDIT:
  Here's my real (anonymized) query, after trying to adapt Steve's solution:</p>
  
  <pre><code>SELECT
      ft.FooTypeID, COUNT(f.FooID)
  FROM FooType as ft
  LEFT OUTER JOIN Foo f ON ft.FooTypeID = f.FooTypeID
  LEFT JOIN FooConfig fc ON ft.NotificationConfigID = fc.FooConfigID
  WHERE
      DateDiff(day, GetDate(), f.Date) &gt; 0 AND
      DateDiff(day, GetDate(), f.Date) &lt; fc.Days
  GROUP BY ft.FooTypeID
  </code></pre>
  
  <p>(The translation between my initial example and this is: Foo -> People, FooType -> Places, FooConfig -> A third table, for extra fun)
  I can make this work with Fosco's solution, but I'd prefer Steve's. </p>