Node.js sequelize group by带有多个字段的结果导致sequelize错误

Node.js sequelize group by带有多个字段的结果导致sequelize错误,node.js,sequelize.js,Node.js,Sequelize.js,我的查询如下: db.test.findAll({ group: ['source'], attributes: ['source','source_id', [Sequelize.fn('COUNT', 'source'), 'count']], order: [[Sequelize.literal('count'), 'DESC']], raw: true }).then((so

我的查询如下:

 db.test.findAll({
            group: ['source'],
            attributes: ['source','source_id', [Sequelize.fn('COUNT', 'source'), 'count']],
            order: [[Sequelize.literal('count'), 'DESC']],
            raw: true
        }).then((sources) => {
            console.log('source is ' + sources);
        }).catch((err) => {
            console.log('error i is ' + err);
        })
test.js

module.exports = function (sequelize, DataTypes) {
    const test = sequelize.define('test', {
        id: {primaryKey: true, type: DataTypes.INTEGER, autoIncrement: true, allowNull: false, unique: true},
        source: {type: DataTypes.STRING, allowNull: false},
        source_id: {type: DataTypes.STRING, allowNull: false},

    });

    return test
};
我一运行此查询,就会出现以下错误:


SELECT列表的表达式2不在GROUP BY子句中,并且包含未聚合的列“db.test.source_id”,该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode=only_full_group_by不兼容。请尝试在group by子句中使用源id。因为这里SQLGET混淆了从多个源代码中选择哪个源代码。您拥有groupBy源,因此它将进行选择,但源id仍然不明确

 db.test.findAll({
                group: ['source', 'source_id'],
                attributes: ['source','source_id', [Sequelize.fn('COUNT', 'source'), 'count']],
                order: [[Sequelize.literal('count'), 'DESC']],
                raw: true
            }).then((sources) => {
                console.log('source is ' + sources);
            }).catch((err) => {
                console.log('error i is ' + err);
            })

在GROUPBY子句中也尝试使用source_id。因为这里SQLGET混淆了从多个源代码中选择哪个源代码。您拥有groupBy源,因此它将进行选择,但源id仍然不明确

 db.test.findAll({
                group: ['source', 'source_id'],
                attributes: ['source','source_id', [Sequelize.fn('COUNT', 'source'), 'count']],
                order: [[Sequelize.literal('count'), 'DESC']],
                raw: true
            }).then((sources) => {
                console.log('source is ' + sources);
            }).catch((err) => {
                console.log('error i is ' + err);
            })