title: Group by having at least one of each item
body: <p>Say I have a table matching <code>person_id</code>s to <code>pet</code>s. I have a list of the ideal pets that a homeowner must have (at least one of each) and, from the following table, I want to see who meets the requirements.</p>
  
  <p>That list is, of course, <code>(dog, cat, tiger)</code>. People can definitely have more than one of each, but these are essential (therefore <code>person_id = 1</code> is the only one that works).</p>
  
  <pre><code>+---------+-----------+--------+
  | home_id | person_id |  pet   |
  +---------+-----------+--------+
  |       1 |         1 | dog    |
  |       2 |         1 | dog    |
  |       3 |         1 | cat    |
  |       4 |         1 | tiger  |
  |       5 |         2 | dog    |
  |       6 |         2 | cat    |
  |       7 |         3 | &lt;null&gt; |
  |       8 |         4 | tiger  |
  |       9 |         4 | tiger  |
  |      10 |         4 | tiger  |
  +---------+-----------+--------+
  </code></pre>
  
  <p>I've been able to check who has a tiger or a cat by running:</p>
  
  <pre><code>select person_id, pet 
  from house 
  group by person_id having pet in ('dog','cat','tiger'), 
  </code></pre>
  
  <p>but obviously this gives the <code>person_id</code>s that have at least one of those pets – not all of them. </p>