Сумма по столбцу подзапроса
Есть две таблицы: employee
и lesson
. У lesson
есть ForeignKey
на teacher
, и столбец hours
- продолжительность занятия. Можно ли написать запрос (Через ORM или на чистом SQL), чтобы получить сумму часов занятий по каждому учителю?
Пытался делать через ORM что-то такое:
Employee.objects.annotate(
total_hours=Subquery(
Lesson.objects.filter(employee_id=OuterRef('pk')).aggregate(Sum('hours'))
)
)
Код не точный, но, суть думаю ясна. Проблема в том, что метод .aggregate()
возвращает словарь. То есть подзапрос сделать не даёт. Очень желательно сделать этот расчёт именно на стороне БД, так как записей занятий огромное количество.
Было бы идеально ещё сгруппировать это по месяцам (у lesson
есть поле date
). То есть сколько часов занятий по каждому месяцу у каждого учителя.