title: Difference between Django's annotate and aggregate methods?
body: <p>Django's <code>QuerySet</code> has two methods, <code>annotate</code> and <code>aggregate</code>. The documentation says that:</p>
  
  <blockquote>
    <p>Unlike aggregate(), annotate() is not a terminal clause. The output of the annotate() clause is a QuerySet.</p>
  </blockquote>
  
  <p>Is there any other difference between them? If not, then why does <code>aggregate</code> exist?</p>