Sequelize.js Sequelize-聚合函数多对多

Sequelize.js Sequelize-聚合函数多对多,sequelize.js,Sequelize.js,我与我的用户和组织表之间的连接组织成员存在多对多关系。我正在尝试创建一个查询,该查询统计组织\u id与特定整数匹配的用户id的数量。我这边的预期结果是一行,其中用户Id的总数作为一列,组织Id作为第二列。我以为我可以通过以下查询实现这一点,但我收到一个错误,未处理的拒绝SequelizeDatabaseError:列“user.user\u id”必须出现在GROUP BY子句中或用于聚合函数。为什么要这样做?很抱歉,缺乏使用SQL的经验,包括聚合和多对多 查询: models.User.fi

我与我的
用户
组织
表之间的连接
组织成员
存在多对多关系。我正在尝试创建一个查询,该查询统计
组织\u id
与特定整数匹配的用户id的数量。我这边的预期结果是一行,其中用户Id的总数作为一列,组织Id作为第二列。我以为我可以通过以下查询实现这一点,但我收到一个错误,
未处理的拒绝SequelizeDatabaseError:列“user.user\u id”必须出现在GROUP BY子句中或用于聚合函数
。为什么要这样做?很抱歉,缺乏使用SQL的经验,包括聚合和多对多

查询:

models.User.findAll({
        attributes: [[sequelize.fn('COUNT', sequelize.col('user.user_id')), 'user_count']],
        include: [{
            model: models.Organization,
            where: {
                organizationId: req.session.organizationId
            },
            attributes: ['organization_id'],
            group: ['organiztion.organization_id']
        }],
    })
user_id
first_name
last_name
email
organization_id
org_name
user_id
organization_id
SELECT "user"."user_id"                                      AS "userId", 
       Count("user"."user_id")                               AS "user_count", 
       "organizations"."organization_id"                     AS 
       "organizations.organizationId", 
       "organizations"."organization_id"                     AS 
       "organizations.organization_id", 
       "organizations.organization_member"."created_at"      AS 
       "organizations.organization_member.created_at", 
       "organizations.organization_member"."updated_at"      AS 
       "organizations.organization_member.updated_at", 
       "organizations.organization_member"."user_id"         AS 
       "organizations.organization_member.user_id", 
       "organizations.organization_member"."organization_id" AS 
       "organizations.organization_member.organization_id" 
FROM   "user" AS "user" 
       INNER JOIN ("organization_member" AS "organizations.organization_member" 
                   INNER JOIN "organization" AS "organizations" 
                           ON "organizations"."organization_id" = 
"organizations.organization_member"."organization_id") 
ON "user"."user_id" = "organizations.organization_member"."user_id" 
AND "organizations"."organization_id" = 1; 
用户模式:

models.User.findAll({
        attributes: [[sequelize.fn('COUNT', sequelize.col('user.user_id')), 'user_count']],
        include: [{
            model: models.Organization,
            where: {
                organizationId: req.session.organizationId
            },
            attributes: ['organization_id'],
            group: ['organiztion.organization_id']
        }],
    })
user_id
first_name
last_name
email
organization_id
org_name
user_id
organization_id
SELECT "user"."user_id"                                      AS "userId", 
       Count("user"."user_id")                               AS "user_count", 
       "organizations"."organization_id"                     AS 
       "organizations.organizationId", 
       "organizations"."organization_id"                     AS 
       "organizations.organization_id", 
       "organizations.organization_member"."created_at"      AS 
       "organizations.organization_member.created_at", 
       "organizations.organization_member"."updated_at"      AS 
       "organizations.organization_member.updated_at", 
       "organizations.organization_member"."user_id"         AS 
       "organizations.organization_member.user_id", 
       "organizations.organization_member"."organization_id" AS 
       "organizations.organization_member.organization_id" 
FROM   "user" AS "user" 
       INNER JOIN ("organization_member" AS "organizations.organization_member" 
                   INNER JOIN "organization" AS "organizations" 
                           ON "organizations"."organization_id" = 
"organizations.organization_member"."organization_id") 
ON "user"."user_id" = "organizations.organization_member"."user_id" 
AND "organizations"."organization_id" = 1; 
组织架构:

models.User.findAll({
        attributes: [[sequelize.fn('COUNT', sequelize.col('user.user_id')), 'user_count']],
        include: [{
            model: models.Organization,
            where: {
                organizationId: req.session.organizationId
            },
            attributes: ['organization_id'],
            group: ['organiztion.organization_id']
        }],
    })
user_id
first_name
last_name
email
organization_id
org_name
user_id
organization_id
SELECT "user"."user_id"                                      AS "userId", 
       Count("user"."user_id")                               AS "user_count", 
       "organizations"."organization_id"                     AS 
       "organizations.organizationId", 
       "organizations"."organization_id"                     AS 
       "organizations.organization_id", 
       "organizations.organization_member"."created_at"      AS 
       "organizations.organization_member.created_at", 
       "organizations.organization_member"."updated_at"      AS 
       "organizations.organization_member.updated_at", 
       "organizations.organization_member"."user_id"         AS 
       "organizations.organization_member.user_id", 
       "organizations.organization_member"."organization_id" AS 
       "organizations.organization_member.organization_id" 
FROM   "user" AS "user" 
       INNER JOIN ("organization_member" AS "organizations.organization_member" 
                   INNER JOIN "organization" AS "organizations" 
                           ON "organizations"."organization_id" = 
"organizations.organization_member"."organization_id") 
ON "user"."user_id" = "organizations.organization_member"."user_id" 
AND "organizations"."organization_id" = 1; 
组织\成员架构:

models.User.findAll({
        attributes: [[sequelize.fn('COUNT', sequelize.col('user.user_id')), 'user_count']],
        include: [{
            model: models.Organization,
            where: {
                organizationId: req.session.organizationId
            },
            attributes: ['organization_id'],
            group: ['organiztion.organization_id']
        }],
    })
user_id
first_name
last_name
email
organization_id
org_name
user_id
organization_id
SELECT "user"."user_id"                                      AS "userId", 
       Count("user"."user_id")                               AS "user_count", 
       "organizations"."organization_id"                     AS 
       "organizations.organizationId", 
       "organizations"."organization_id"                     AS 
       "organizations.organization_id", 
       "organizations.organization_member"."created_at"      AS 
       "organizations.organization_member.created_at", 
       "organizations.organization_member"."updated_at"      AS 
       "organizations.organization_member.updated_at", 
       "organizations.organization_member"."user_id"         AS 
       "organizations.organization_member.user_id", 
       "organizations.organization_member"."organization_id" AS 
       "organizations.organization_member.organization_id" 
FROM   "user" AS "user" 
       INNER JOIN ("organization_member" AS "organizations.organization_member" 
                   INNER JOIN "organization" AS "organizations" 
                           ON "organizations"."organization_id" = 
"organizations.organization_member"."organization_id") 
ON "user"."user_id" = "organizations.organization_member"."user_id" 
AND "organizations"."organization_id" = 1; 
生成的SQL:

models.User.findAll({
        attributes: [[sequelize.fn('COUNT', sequelize.col('user.user_id')), 'user_count']],
        include: [{
            model: models.Organization,
            where: {
                organizationId: req.session.organizationId
            },
            attributes: ['organization_id'],
            group: ['organiztion.organization_id']
        }],
    })
user_id
first_name
last_name
email
organization_id
org_name
user_id
organization_id
SELECT "user"."user_id"                                      AS "userId", 
       Count("user"."user_id")                               AS "user_count", 
       "organizations"."organization_id"                     AS 
       "organizations.organizationId", 
       "organizations"."organization_id"                     AS 
       "organizations.organization_id", 
       "organizations.organization_member"."created_at"      AS 
       "organizations.organization_member.created_at", 
       "organizations.organization_member"."updated_at"      AS 
       "organizations.organization_member.updated_at", 
       "organizations.organization_member"."user_id"         AS 
       "organizations.organization_member.user_id", 
       "organizations.organization_member"."organization_id" AS 
       "organizations.organization_member.organization_id" 
FROM   "user" AS "user" 
       INNER JOIN ("organization_member" AS "organizations.organization_member" 
                   INNER JOIN "organization" AS "organizations" 
                           ON "organizations"."organization_id" = 
"organizations.organization_member"."organization_id") 
ON "user"."user_id" = "organizations.organization_member"."user_id" 
AND "organizations"."organization_id" = 1;