Сумма по столбцу подзапроса

Есть две таблицы: 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). То есть сколько часов занятий по каждому месяцу у каждого учителя.

Вернуться на верх