Агрегатная функция принимает список значений и возвращает одно значение. Наиболее часто используемыми агрегатными функциями являются count, Max, Min, Avg и Sum.
Count()
Объект QuerySet предоставляет вам метод count(), который возвращает количество содержащихся в нем объектов. Например, вы можете использовать count() метод для получения количества сотрудников:
Employee.objects.count()
Метод count() использует функцию SQL COUNT(*) для возврата количества строк в hr_employee таблице.
Чтобы получить количество сотрудников, чьи имена начинаются с буквы J, вы можете использовать оба метода объекта filter() и следующим образом: count() QuerySet
Employee.objects.filter(first_name__startswith='J').count()
В этом случае filter() метод формирует WHERE предложение, в то время как count() метод формирует COUNT() функцию.
Max()
Возвращает Max() максимальное значение в наборе значений. Он принимает столбец, для которого вы хотите получить наибольшее значение.
Например, в следующем примере используется метод Max() для возврата самого высокого возраста сотрудника:
Employee.objects.aggregate(Max('age'))
Выполняет SQL MAX() для столбца возраста в таблице hr_employee и возвращает самый высокий возраст сотрудника.
Min()
Метод Min() возвращает минимальное значение в наборе значений. Как и Max(), он принимает столбец, для которого вы хотите получить наименьшее значение.
В следующем примере используется Min() для возврата самого низкого возраста сотрудника:
Employee.objects.aggregate(Min('age'))
Функция Min() выполняет функцию SQL MIN(), которая возвращает минимальное значение в столбце возраста.
Avg()
Метод возвращает среднее значение в наборе значений. Он принимает имя столбца и возвращает среднее значение всех значений в этом столбце:
Employee.objects.aggregate(Avg('age'))
Незаметно Avg() выполняет функцию SQL AVG() для столбца возраста hr_employee и возвращает средний возраст сотрудников.
Sum()
Метод возвращает сумму значений. Например, вы можете использовать Sum() для расчета общего возраста сотрудников компании:
Employee.objects.aggregate(Sum('age'))
Выполняет функцию SQL SUM() и возвращает общее значение всех значений в столбце 'age' таблицы hr_employee.