node.js - sequelize 中的聚合函数
问题描述
我需要一个包含聚合函数的查询。我想计算每个活动的售票数量
我尝试了下面的代码
const data = await Items.paginate({
page: offset.value,
paginate: limit.value,
where: itemType,
include:[
{model:ItemTypes},
{model:ItemPayment,
attributes: [[db.sequelize.fn('sum', db.sequelize.col('ItemPayments.numberOfTickets')), 'total']],
group: ["ItemPayments.itemId"],
}],
raw:true
});
但它给了我一个如下错误
In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'Items.id'; this is incompatible with sql_mode=only_full_group_by
解决方案
添加separate : true
并尝试再次执行查询
{
model:ItemPayment,
attributes: [[db.sequelize.fn('sum', db.sequelize.col('ItemPayments.numberOfTickets')), 'total']],
group: ["ItemPayments.itemId"],
separate : true // <--------- HERE
}
推荐阅读
- ios - 隐藏 iPhone X 上的主页按钮
- dynamics-crm - 如何使用预定义的 Id 创建实体记录?
- python-3.x - 不在词汇表中的词
- java - FirebaseAuth onAuthStateChanged 总是在应用启动时启动
- sql-server - 在 T-SQL 查询中从子组中选择所有用户
- java - 如何提高 Flink 中数据流实现的不同计数?
- azure-virtual-machine - 如何防止本地用户将数据从 Azure 虚拟机下载到外部
- r - 读取受密码保护的 MS-Word 文件
- elasticsearch - 从封闭列表中搜索,并仅形成该列表
- python-3.x - 尝试导入 torchvision 时出现导入错误