title: Removing redundant information, difficult SQL query
body: <p>I have a table in the format:</p>
  
  <pre><code>`users`
  - id
  - views
  - email
  </code></pre>
  
  <p>Here are some entries I have:</p>
  
  <pre><code>`id`        `email`                 `likes`
  9570800   -anroy@gmail.com      888
  5355388   -Btionz@gmail.com     3042
  8610061   -cmendez@naia.org         450
  6189810   -dancox_photog@yahoo.co.uk 0
  6625684   -david.d.@gmail.com        0
  16841675  -david.d.@gmail.com        40
  9716153   -david.d.@gmail.com        0
  9716353                              0
  97161453                             0
  </code></pre>
  
  <p>I want to <code>DELETE</code> all entries that have a duplicate email and keep the entry with the highest <code>likes</code>. For example, in the above, the duplicates for <code>-david.d.@gmail.com</code>  would mean <code>6625684</code> and <code>9716153</code> would both be deleted, and <code>16841675</code> would be kept (since it has the most likes out of the duplicates.</p>
  
  <p>In addition, if the <code>email</code> is blank (<code>''</code> or <code>NULL</code>), ignore it / do not delete it. </p>
  
  <p>How would I accomplish this query?</p>