title: Django Coalesce returns null if no rows are found
body: <p>I'm using the <a href="https://docs.djangoproject.com/en/dev/ref/models/database-functions/#coalesce" rel="nofollow noreferrer"><code>Coalesce</code> function</a> to prevent an aggregate <code>Sum</code> from returning <code>None</code></p>
  
  <pre><code>Coalesce(Sum('ext_price'), 0)
  </code></pre>
  
  <p>The problem is that if no rows are found it still returns null. Is there a way to modify the function so it returns zero if no rows are found?</p>
  
  <pre><code>class Coalesce(Func):
      """Return, from left to right, the first non-null expression."""
      function = 'COALESCE'
  
      def __init__(self, *expressions, **extra):
          if len(expressions) &lt; 2:
              raise ValueError('Coalesce must take at least two expressions')
          super().__init__(*expressions, **extra)
  </code></pre>
  
  <p>By having no rows I mean</p>
  
  <pre><code>queryset = MyModel.objects.none()
  total = queryset.aggregate(total=Coalesce(Sum('total'), Value(0)).get('total')
  total == None  # True
  </code></pre>