From 78b5c9075348aa12da2e024f6ece29d1d652dfdd Mon Sep 17 00:00:00 2001 From: David Sanders Date: Wed, 20 Sep 2023 23:58:23 +1000 Subject: [PATCH] Refs #34808 -- Doc'd that aggregation functions on empty groups can return None. --- docs/ref/models/querysets.txt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index d2dc088f378..b89341bc6a4 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -3840,14 +3840,15 @@ documentation to learn how to create your aggregates. currently emulates these features using a text field. Attempts to use aggregation on date/time fields in SQLite will raise ``NotSupportedError``. -.. admonition:: Empty queryset +.. admonition:: Empty querysets or groups - Aggregation functions return ``None`` when used with an empty - ``QuerySet``. For example, the ``Sum`` aggregation function returns ``None`` - instead of ``0`` if the ``QuerySet`` contains no entries. To return another - value instead, pass a value to the ``default`` argument. An exception is - ``Count``, which does return ``0`` if the ``QuerySet`` is empty. ``Count`` - does not support the ``default`` argument. + Aggregation functions return ``None`` when used with an empty ``QuerySet`` + or group. For example, the ``Sum`` aggregation function returns ``None`` + instead of ``0`` if the ``QuerySet`` contains no entries or for any empty + group in a non-empty ``QuerySet``. To return another value instead, define + the ``default`` argument. ``Count`` is an exception to this behavior; it + returns ``0`` if the ``QuerySet`` is empty since ``Count`` does not support + the ``default`` argument. All aggregates have the following parameters in common: