Как корректно создать колонку с подсчетом объектов в другой колонке?

Пытаюсь сделать запрос, в котором хочу получить соединенные три таблицы: students, lessons, teachers, при этом мне нужно добавить колонку studCount, в которой будет считаться количество студентов для этого урока Сейчас запрос выглядит так:

const query = await Lesson.findAll(
      {
        attributes: {
          include: [
            [
              db.Sequelize.fn("COUNT", db.Sequelize.col("students.id")),
              "studCount",
            ],            
          ],
        },
        
        limit: null,
        offset: null,
        include: [
          {
            model: Student,
            attributes: [],
            through: {
              attributes: [],
            },
          },
          {
            model: Teacher,
            attributes: [],
            through: {
              attributes: [],
            },
          },       
        ],
        order: ["id"],
        group: ["lesson.id"],
        raw: true
      },
    );

Проблема в том, что studCount сейчас неправильно считает количество студентов, но группировка по lesson.id происходит, что мне и нужно. Но мне нужно, чтобы считало верно, и я мог вывести все столбцы, а не только с подсчетами или только без них Почему-то когда я пытаюсь всё соединить, sequelize ругается на group by, что надо туда всё передавать, но тогда у меня опять получается куча записей с одинаковыми id, всё разбивается.

Должно выйти что-то вроде

id: 1,
date: '27-07-2021',
title: 'lesson 1',
status: 'true',
students: [{id: 2, name: 'Boris'},
{id: 4, name: 'Ivan'}],
teachers: [{id: 1, name: 'Alexandra'}],
studCount: 2

Ответы (0 шт):