我试图找到具有相同“VenueId”的所有数据的“评级”列的平均值。我可以使用原始代码,但需要在 Sequelize 中对其进行调整。工作原始代码是
SELECT venueId, AVG(rating) AS average FROM reviews GROUP BY VenueId
我尝试过的代码是
Review.findAll({
order: [[Sequelize.fn('AVG', Sequelize.col('rating'))]]
}).then(function(Venues) {})
我收到错误:
执行(默认):SELECT id, review, rating,createdAt,updatedAt,
VenueId FROM Reviews AS Review ORDER BY max(评级);未处理
拒绝 SequelizeDatabaseError:UNKNOWN_CODE_PLEASE_REPORT:
ORDER BY 的表达式 #1 包含聚合函数并适用于
非聚合查询的结果。
有任何想法吗?
这可能需要一些调整,因为我不知道你的模型,但我建议你尝试以下操作:
Review.findAll({
attributes: ['venueId', [models.sequelize.fn('AVG', models.sequelize.col('venue_id')), 'venueIdCount']],
group: 'venue_id'
order: [[models.sequelize.fn('AVG', models.sequelize.col('venue_id')), 'DESC']]
}).then(function() {
//Do something
}})
需要注意的重要事项:当我使用“venueId”时,我的意思是模型上的属性名称,当我使用“venue_id”时,我的意思是数据库表中的列名称。它们可能相同或不同,因此请随意调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)