gpt4 book ai didi

node.js - 多个字段的 Sequelize 分组会导致 Sequelize 错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:02:13 25 4
gpt4 key购买 nike

我的查询如下所示:

 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);
})

测试.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 子句中使用 source_id 。因为这里 SQL get 混淆了从多个 source_id 中选择哪个。您有 groupBy 源,因此它会选择,但 souce_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);
})

关于node.js - 多个字段的 Sequelize 分组会导致 Sequelize 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52050637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com